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;
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章