Прототип объекта

__proto__ или [[Prototype]] — скрытое системное свойство, которое служит связующим звеном между объектами.

var obj1 = { prop1: true };
var obj2 = { prop2: true };

obj2.__proto__ = obj1;

obj2.prop2; // obj2.prop2
obj2.prop1; // obj2.__proto__.prop1

Все типы данных наследуются от Object:

Number.prototype.__proto__ === Object.prototype;

Конец цепочки:

Object.prototype.__proto__ === null;

Метод hasOwnProperty

Проверяет, содержит ли объект указанное свойство.

var obj1 = { prop1: true };
var obj2 = { prop2: true };

obj2.__proto__ = obj1;

obj2.hasOwnProperty('prop2'); // => true
obj2.hasOwnProperty('prop1'); // => false

Object.create()

Cоздаёт новый объект с указанными объектом прототипа и свойствами.

const obj1 = {};
obj1.__proto__ === Object.prototype;

const obj2 = Object.create(null);
obj2.__proto__ === undefined;

Ссылки

results matching ""

    No results matching ""