首頁 >web前端 >js教程 >js中的new後做了些什麼?

js中的new後做了些什麼?

一个新手
一个新手原創
2017-09-25 10:51:472361瀏覽

(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.如果沒有回傳語句,或是回傳對象的語句,那麼回傳的就是這個臨時對象,否則回傳的我們回傳的對象。


用原生JS實作new方法

function New(f) {
    return function () {
        var o = {"__proto__": f.prototype};
        f.apply(o, arguments);//继承父类的属性
        return o; //返回一个Object
    }
}

以上是js中的new後做了些什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn