Создание объекта с тем же прототипом, с использованием 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

Комментарии к статье