美文网首页Web 前端开发
javascript总结:new操作符的本质

javascript总结:new操作符的本质

作者: 张培跃 | 来源:发表于2019-10-24 13:51 被阅读0次
    new 构造函数的执行流程:
    • 创建对象,并给予属性名为__proto__,值为构造函数原型(prototype)的属性。
    • 将构造函数的this指向为刚创建的对象。
    • 执行构造函数的语句。
    • 将创建的对象进行返回。
    function myNew (fun) {
        return function () {
            // 创建一个新对象且将其隐式原型指向构造函数原型
            let obj = {
                __proto__ : fun.prototype
            }
            // 执行构造函数
            fun.call(obj, ...arguments);
            // 返回该对象
            return obj;
        }
    }
    
    function Site(siteName, siteUrl) {
        this.siteName = siteName;
        this.siteUrl = siteUrl;
    }
    let obj = myNew(Site)("张培跃","http://www.zhangpeiyue.com");
    console.log(obj);// { siteName: '张培跃', siteUrl: 'http://www.zhangpeiyue.com' }
    

    相关文章

      网友评论

        本文标题:javascript总结:new操作符的本质

        本文链接:https://www.haomeiwen.com/subject/qmgrvctx.html