美文网首页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