JS劫持——拓展:call方法

89 阅读1分钟

拓展:

1.所有的函数对象都有call方法————Function.prototype有call方法

2.运行的函数是.call()前面的函数(哪个函数调用call方法就是哪个函数在运行)

3.调用这个函数的对象是call方法里面的调用者

代码理解:

image.png

image.png

image.png

原理:就是给obj2里面添加了一个obj中的say函数,然后运行obj2中的say函数,运行完毕后,删除obj2中刚刚添加的say函数。

image.png 总结:无论有多少.call方法,fn.call.call.call(fn2)的实际运行的函数都是fn2函数