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.
}