(1) 建立一個新物件;
(2) 將建構子的作用域賦給新物件(因此this 就指向了這個新物件);
(3) 執行建構子中的程式碼(為這個新物件新增屬性) ;
(4) 傳回新物件。
var a=new A();
1.建構子擁有一個叫prototype的屬性,這裡即A.prototype,這個物件預設有一個屬性constructor,他的值是這個建構子A 。
2.javascript先建立一個空對象,先叫它做臨時對象,它繼承A.prototype的所有屬性。
3.當A()開始執行,設定A的this指向這個臨時對象,然後繼續執行函數A。
4.如果沒有回傳語句,或是回傳對象的語句,那麼回傳的就是這個臨時對象,否則回傳的我們回傳的對象。
function New(f) { return function () { var o = {"__proto__": f.prototype}; f.apply(o, arguments);//继承父类的属性 return o; //返回一个Object } }
以上是js中的new後做了些什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!