1. 程式人生 > >JS new物件內部發生了什麼

JS new物件內部發生了什麼

function Animate(name){
      this.name = name;
}
Animate.prototype.dance = function(){
      console.log(this.name + "在跳舞!");
}
var dog = new Animate('小白');
dog.dance();
        
        //new Animate('小白')時發生的事情:
        1.建立了一個新物件 var obj = {}
        2.將Animate中的this關鍵字指向obj
        3.將Animate的prototype原型指向obj原型,這樣obj就擁有了Animate中的方法
        
4.執行Animate建構函式(類)的程式碼 執行完後,obj的樣子: var obj = { name : '小白', dance : function(){ console.log(this.name + "在跳舞!"); } }