Функции Object.create - создает объект и записывает в прототип переданный в параметре объект.

Перед прочтенем статьи рекомендуется ознакомиться с new, __proto__, prototype.

См. также hasOwnProperty, constructor.

Синтаксис

Object.create(прототип);

Примеры

Пример

При создании объектов, у них уже есть некоторые свойства, которые они наследуют от Object. Давайте создадим объект, без прототипа (может быть полезным для коллекций):

var obj = {};
alert(obj.toString); //фукцния

var obj2 = Object.create(null); 
alert(obj2.toString); //undefined

Пример

С помощью Object.create можно организовать наследование объектов:

var user = {
	sayHi: function() {
		alert('Привет. Меня зовут ' + this.name);
	}
}

var andrey = Object.create(user);
andrey.name = 'Андрей';

andrey.sayHi() //'Привет. Меня зовут Андрей'

В этом примере объект andrey получил такой вид:

var andrey = {
	name: 'Андрей',
	__proto__: user,
}

Таким образом, при обращении к свойству, которого нет в andrey, оно ищется в объекте, указаном в __proto__.

Конечно, можно было бы и сразу так написать (то есть без Object.create), но напрямую записывать в __proto__ можно только в современных браузерах (ИЕ 10+), а Object.create - ИЕ8+, а также для него легко написать полифил (для поддержки в более старых браузерах).