您的位置:首页 > Web前端 > JavaScript

JavaScript: How does 'new' work internally

2013-05-13 21:22 288 查看
转自:http://stackoverflow.com/questions/6750880/javascript-how-does-new-work-internally

The 
new
 operator
uses the internal 
[[Construct]]
 method,
and it basically does the following:

Initializes a new native object

Sets the internal 
[[Prototype]]
 of
this object, pointing to the Function 
prototype
 property.

If the function's 
prototype
 property
is not an object (a primitive values, such as a Number, String, Boolean, Undefined or Null), 
Object.prototype
 is
used instead.

After creating the object, it calls the function, providing the object as its 
this
 value.

If the return value of the called function, is a primitive, the object created internally is returned.

Otherwise, if an object is returned, the object created internally is lost.

An equivalent implementation of what the 
new
 operator
does, can be expressed like this (assuming that the ECMAScript 5 
Object.create
 method
is available):
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: