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

本以为对js中的this关键字很了解了自从看了这个

本以为对js中的this关键字很了解了自从看了这个

杨__羊羊 2018-10-10 17:15:25
最近写的js也不少了,自认为对this关键字很了解了,但是on my god,这是什么鬼?谁能给大白话在解释下,看不懂。
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

这其实没什么复杂的。

ES5中this的真谛在于——动态绑定上下文(context)对象。

也就是说, 跟函数的定义是没有任何关系的,只跟他运行时的状态有关。

你的问题中, getFullName这个变量是一个函数,又是prop对象的属性。这是对于这个问题来说我们最需要关注的两个点。至于前边那一连串调用,不过是为了得到pro对象而已。

getFullName函数第一次调用,是被prop对象,那this肯定就是prop无疑啦。

第二次调用,是它被赋值给了test变量,test变量是个全局变量, 实际可以看做是window对象的属性(但不全等)。 这样,就相当于是window.test().那他的this肯定就是window了。

如果说了这么多你还不懂,那你那句‘本以为’的确是挺‘本以为的’。不过要是不懂,说一声儿我还是会继续补充的, 直到你一点儿疑惑都没有。


查看完整回答
反对 回复 2018-11-23
  • 1 回答
  • 0 关注
  • 487 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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