Создание объекта с тем же прототипом, с использованием Object.create(proto)
Наследование с использованием Object.create(proto)
Object.create(proto)
создает пустой объект с указанным прототипом.
var people = { countHand: 2 };
var chinaman = Object.create(people);
alert(chinaman.countHand); // 2
На выходе имееи пустой объект chinaman
({}
) с прототипом people
({ countHand: 2 }
)
Кроссбраузерный (IE8-) аналог Object.create(proto)
:
function inherit(proto) {
function F() {} // ф-я конструктор, new F вернёт пустой объект
F.prototype = proto; // Прототипу функции ставим наследуемый объект
var object = new F; // Результатом вызова new F будет пустой объект с __proto__ равным значению F.prototype.
return object; // Возвращаем объект с заданным прототипом
}
Использование:
var people = { countHand: 2 };
var chinaman = inherit(people);
alert(chinaman.countHand); // 2
Комментарии к статье