美文网首页
2019-09-11 JavaScript中的new

2019-09-11 JavaScript中的new

作者: 枫叶落尽 | 来源:发表于2019-10-07 01:24 被阅读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

    相关文章

      网友评论

          本文标题:2019-09-11 JavaScript中的new

          本文链接:https://www.haomeiwen.com/subject/idfiyctx.html