walth
11/14/2016 - 7:32 PM

inherit() повертає заново створений об'єкт, що наслідує властивості об'єкта-прототипа p. Використовує функцію Object.create() із ECMAScript

inherit() повертає заново створений об'єкт, що наслідує властивості об'єкта-прототипа p. Використовує функцію Object.create() із ECMAScript 5, якщо вона визначена, інакше використовує більш старий спосіб.

// inherit() повертає заново створений об'єкт, що наслідує властивості
// об'єкта-прототипа p. Використовує функцію Object.create() із ECMAScript 5,
// якщо вона визначена, інакше використовує більш старий спосіб.
function inherit(p) {
	if(p===null) throw TypeError();	// p не може мати значення null
	
	if(Object.create)								// Якщо Object.create() визначена...
		return Object.create(p);			// викристовувати її

	var t = typeof p;								//Інакше вияснити тип і первірити його
	if (t !== "object" && t !== "function") throw TypeError();

	function f() {}                 // Визначити фіктивний конструктор
	f.prototype = p;								// Записати в його властивість prototype
																	// посилання на о'бєкт p.
	return new f();									// Використовувати f() для свторення
																	// "спадкоємця" о'бєкта p.
}