继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

new做了什么

喵居
关注TA
已关注
手记 37
粉丝 6
获赞 35

 // new操作符做了如下操作

    function newObj() {

      console.log('newObj', this)

      this.x = 1

    }


    let obj = new newObj()// 直接new


    function setObj(pObj) {

      let obj1 = {b: 1}// 1.开启一个对象

      pObj.apply(obj1)// 2.调用开启的对象作为this上下文

      obj1.__proto__ = pObj.prototype// 3.将函数的prototype赋值给对象的__proto__

      return obj1// 4.返回对象

    }


    console.log(obj, setObj(newObj))

mdn文档上步骤2和3是相反的但是我觉得这样会好理解一点。
http://img4.sycdn.imooc.com/5f60303d00012b8004940135.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP