new操作符具體幹了啥

找抽的小陀螺發表於2017-09-22

new操作符具體幹了啥

我們平常見到就是 這樣new的一個例項


    function Base(name) {
      this.name = name;
    }


    Base.prototype.showName = function() {
        console.log(this.name);
    };

     var obj = new Base()複製程式碼

到底這個new的過程幹了啥就不買關子了 其實new的過程就幹了三件事
1.var obj = {};

  • 第一步var obj = {}是建立一個空的物件 obj

2.obj.proto = Base.prototype;

  • 第二步 物件中有的是_proto 函式有的是 prototype 第二步這個時候講空物件obj的原型proto 指向Base函式的prototype的

3.Base.call(obj);

  • 第三步 這個時候利用call 將Base函式物件的this指標指向obj 這樣在原型中新增的 通過new 就可以了

所以上述 建立物件說了兩種方法

  1. var obj = new Base()
  2. 就是通過new的過程來實現建立一個物件

    在整理回顧下

    1. var obj = new Base()
    2. var obj ={}
      obj.proto = Base.prototype
      Base.call(obj)
      兩種方式建立一個物件

相關文章