js構造函數的new(new運算符原理)

function _New(fun) {
        //首先會創建一個新的空對象
        var obj = {};
        //然後新的空對象的_proto_指向構造函數的prototype成員對象
        obj._proto_ = fun.prototype;
        //創建一個引用對象,並且把構造函數(fun)的this指向引用對象
        var res = fun.call(obj);
        //判斷構造函數執行完的結果返回的是不是一個對象,如果是就返回這個對象;如果不是,就返回新創建的對象(obj)
        if (res && typeof (res) == 'object' || typeof (res) == 'function') {
            return res;
        } else {
            return obj;
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章