javascript中对象字面量方式创建对象,不会调用Object构造函数吗?

javascritp高级程序设计 中说 在通过对象字面量定义对象时,实际不会调用Object 构造函数。 那是通过什么形式创建的?

阅读 3.9k
评论 2015-12-13 提问
    3 个回答
    manxisuo
    • 10.5k

    你要知道:在创建对象时,调用构造函数,并不是必需的过程。

    举例说:有一个构造函数Person当你

    var p = new Person();

    时,JS引擎首先帮你造出个对象来,然后再把this指向这个刚刚造出来的对象,调用Person这个构造函数来做一些初始化操作。
    也就是说,在调用构造函数前,这个对象已经有了。所以用对象字面量创建对象时,只不过省去了调用构造函数那一步,而是该用了JSON的方式进行初始化。

    评论 赞赏 2015-12-13

      我一般用
      function One(){

         this.name='hi'

      }
      One.prototype.say=function(){

         alert(this.name)

      }

      评论 赞赏 2015-12-13
        kikong
        • 18.3k

        猜可能类似如此吧~~~

        var myobj=(function(proName,propValue){
            function __BB__(proName,propValue){
                this[proName]= propValue;
            }
            
            return new __BB__(proName,propValue);
        }("name","123456"));
        评论 赞赏 2015-12-13
          撰写回答

          登录后参与交流、获取后续更新提醒