美文网首页网页前端后台技巧(CSS+HTML)互联网科技码农的世界
web前端入门到实战:JS中new操作符源码实现

web前端入门到实战:JS中new操作符源码实现

作者: 560b7bb7b879 | 来源:发表于2019-09-24 22:04 被阅读0次

首先我们来看一下实例化一个对象做了浏览器做了什么事情

new的四步操作:

1. 创建一个空对象
2. 设置空对象的proto属性继承构造函数的prototype属性,也就是继承构造函数的原型对象上的公有属性和方法
3. 调用构造函数,将构造函数中的this替换为空对象的this,继承构造函数中的属性
4. 在函数内部返回一个新对象

源码实现

function myNew (fun) {
  return function () {
    // 创建一个新对象且将其隐式原型指向构造函数原型
    let obj = {
      __proto__ : fun.prototype
    }
    // 执行构造函数
    fun.call(obj, ...arguments)
    // 返回该对象
    return obj
  }
}

function person(name, age) {
  this.name = name
  this.age = age
}
let obj = myNew(person)(‘chen‘, 18) // {name: "chen", age: 18}

自己是一个6年的前端工程师,希望本文对你有帮助!

这里推荐一下我的前端学习交流扣qun:731771211 ,里面都是学习前端的,如果你想制作酷炫的网页,想学习编程。自己整理了一份2019最全面前端学习资料,从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到移动端HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴,每天分享技术

点击:加入

相关文章

网友评论

    本文标题:web前端入门到实战:JS中new操作符源码实现

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