2019-09-11 JavaScript中的new

2019-10-07  本文已影响0人  枫叶落尽

nmd上如是说,翻译过来:
1、创建一个空的、原始的对象
类似:

空的原始的对象的 构造函数是 Object

2、把新创建的对象和另一个对象关联起来
先做个验证:

    function constructorObj()
    {
    }
    
    constructorObj.prototype = { constructor:"test"};
    
    objNew = new constructorObj();
constructorObj {}
objNew.constructor
"test"
//可见constructor是从__proto__ 中查找获取的,而非对象的一个属性

关联的意思是:
把新创建的对象的 __proto__ 属性设置为 constructor 的prototype属性;

3、把新生成的对象作为 this,即调用上下文

4、执行函数中的代码块,默认情况下将this作为返回值返回。
注:此时的作用域链为: 新生成对象所在作用域链-函数局部变量对象

注:实践和mdn上的阐述略有出入,主要在第2点

参考:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new
https://content.pivotal.io/blog/javascript-constructors-prototypes-and-the-new-keyword

https://stackoverflow.com/questions/9468055/what-does-new-in-javascript-do-anyway

https://www.cnblogs.com/faith3/p/6209741.html

上一篇下一篇

猜你喜欢

热点阅读