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

不懂就问,关于函数赋值的问题

不懂就问,关于函数赋值的问题

梦里花落0921 2019-03-18 22:11:15
在js高级程序设计中,有一个这样的例子:(object.getName=object.getName)() //此时内部的this不是指向object而是window书中原话是,这个赋值表达式的值是函数本身,所以this的值得不到维持。个人猜想:然倒是因为赋值操作会断开引用?向各位请教正确解答
查看完整描述

2 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

不考虑call、apply、bind等特殊情况,正常情况下只有o.m()这种方式会传递o作为mthis

而例子中的赋值表达式乍一看跟这种形式很像,但是实际上并不是。整个表达式的结果是getName这个函数的引用,在表达式的求值结果中并没有object

把这个代码改写一下,大概相当于下面这样:

(t=object.getName, object.getName=t, t)()

最终调用的是t这个函数引用,并没有object


查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 481 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信