为了账号安全,请及时绑定邮箱和手机立即绑定

用new实例化一个对象时,this指针的绑定--读《JavaScript语言精粹》P47疑惑

用new实例化一个对象时,this指针的绑定--读《JavaScript语言精粹》P47疑惑

德玛西亚99 2018-08-30 09:10:20
书本上说当用new操作符实例化一个对象时,大致流程可能是这样的Function.method('new', function() {  // 创建一个新对象, 它继承自构造器的原型对象   var that = Object.create(this.prototype);  // 调用构造器函数,绑定 -this- 到新对象上   var other = this.apply(that, arguments);  // 如果它返回的不一个对象,就返回该新对象   return (typeof other === 'object' && other) || that;  })这段代码有两处疑惑1、关于this的指向:书中讲到 “使用构造器函数存在一个严重的危害,如果你在调用构造器函数时忘记了在前面加new前缀,那么this将不会绑定到一个新对象上。而是 全局对象。”很明显,上述new方法的第二段代码就是讲this绑定到新对象上,那么第二行代码的this哪里来的?它原先指向哪里?难道这里的this是指向Function的?那么也就是说新对象的this指向它父类的构造函数?2、最后一行代码,为什么要这么写?难道还存在other不是对象的情况吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 844 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号