Object.create()

Стандарт ECMAScript 5 определяет метод Object.create(), который создает новый объект и использует свой первый аргумент в качестве прототипа этого объекта. Дополнительно Object.create() может принимать второй необязательный аргумент, описывающий свойства нового объекта.

Этот метод очень удобен, так как позволяет вам указывать объект прототип для нового вашего объекта без определения функции конструктора.

Object.create() является статической функцией, а не методом, вызываемым относительно некоторого конкретного объекта. Чтобы вызвать эту функцию, достаточно передать ей желаемый объект-прототип:

var o1 = Object.create({x:1, y:2}); // o1 на­сле­ду­ет свой­ст­ва x и y

Чтобы создать объект, не имеющий прототипа, можно передать значение null, но в этом случае вновь созданный объект не унаследует ни каких-либо свойств, ни базовых методов, таких как toString() (а это означает, что этот объект нельзя будет использовать в выражениях с оператором +):

var o2 = Object.create(null); // o2 не на­сле­ду­ет ни свойств, ни ме­то­дов

Если в программе потребуется создать обычный пустой объект (который, например, возвращается литералом {} или выражением new Object()), передайте в первом аргументе Object.prototype:

var o3 = Object.create(Object.prototype); // o3 по­до­бен объ­ек­ту, соз­дан­но­му
 // с по­мо­щью {} или new Object().

<<< back

results matching ""

    No results matching ""