2014-01-14 4 views
0

Я видел код, который идет вдоль линииЧто вызывает вызов Object без использования нового?

Object(existingObject).myMethod(); 

Является ли это отличается от вызова existingObject.myMethod() напрямую? В общем, что делает объект (x)?

+0

Он создает объект обертку – adeneo

+2

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object – adeneo

ответ

2

Конструктор объектов создает обертку объекта для данного значения. Если значение равно null или undefined, оно создаст и вернет пустой объект , в противном случае он вернет объект с типом, который соответствует указанному значению. Если значение уже является объектом, оно вернет значение .

В вашем случае, поскольку значение уже является объектом, оно просто вернет значение existingObject. Итак, нет, это не совсем так, как напрямую звонить existingObject.myMethod.

Documentation

+1

Вы должны указать ссылку на цитаты. В частности, фраза «Конструктор объектов создает ...» на самом деле должна быть «Когда вызывается как функция, конструктор объекта создает ...», чтобы более точно соответствовать [ECMA-262] (http://ecma-international.org/ecma -262/5,1/# втор-15.2.1.1). – RobG

+0

Я могу выкопать это RobG, спасибо за подсказку :) – Hacknightly

Смежные вопросы