为什么最后输出的结果是jack call函数调用后不应该改
javascript吧
全部回复
仅看楼主
level 1
为什么最后输出的结果是jack call函数调用后不应该改变了this指向吗
2020年10月11日 05点10分 1
level 11
MDN上有描述
bound函数在被调用的时候,实际调用形式是原目标函数.call(boundThis)
所以你这里func.call实际调用的是obj.func.call(obj)
2020年10月12日 00点10分 2
那call(obj2)里的obj2不应该改变了this指向吗 让结果等于jay
2020年10月12日 09点10分
level 12
我没记错的话bind()方法 会返回新函数 也就是说不是obj.func 那个函数了 你在fnc.call不就没用了 应该是这么回事的 你去看下bind的实现[吃瓜] call的也可以看看 [小乖]
2020年10月12日 10点10分 3
level 13
bind 可以看成是 js 引擎根据被 bind 的函数生成一个新的函数,执行这个函数的时候将原函数的 this 设为 bind 的对象并执行。你不断地 bind 亦或者是 call 等等,就等于是在一个球上面不断地包外皮,而执行的时候就等于把这个球一层层拆开,取最靠近核心的那一层。所以其实不论你修改 this 的指向多少层,都只有最开始的那一层生效。bind … bind call
2020年10月13日 02点10分 4
1