Открыть меню    

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

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

Добавить комментарий к сниппету