Как "Object ()" и "new Object ()" отличаются в JavaScript? - PullRequest
9 голосов
/ 20 июня 2010

В JavaScript, в чем разница между

var x = Object();

и

var x = new Object();

?

1 Ответ

9 голосов
/ 20 июня 2010

Это извлекается непосредственно из спецификации ECMAScript :

15.2.1. Конструктор объекта вызывается как функция

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

15.2.1.1 Object ([value])

Когда функция Object вызывается без аргументов или со значением одного аргумента, предпринимаются следующие шаги:

  1. Если значение равно null, не определено или не указано, создайте и верните новый объект Object точно так же, как если бы стандартный встроенный конструктор объекта был вызван с теми же аргументами (15.2.2,1).

    Короче говоря: new Object([ value ])

  2. Return ToObject (значение).

Примечания:

[] Типичный способ пометить параметр как необязательный.

ToObject Это очень простая операция, определенная в разделе 9.9.

...