this其实就是隐式的传参
- 今天来看一道面试题,彻底弄明白this
1 | let length = 10; |
答案是
iframe的个数
2
你一定想问,what! 没错,和5、10都没关系
在看this的时候,一定要看如何调用
看到调用的地方如果是简写,一定要写出call的第一个参数,明确是如何调用。
fn
- 在这里看到method里的fn可以写成fn.call(undefined), 也就是说this是window。
- 查看文档,我们发现window.length说的是iframe的个数。
arguments0
- arguments0可以写成, arguments.0.call(arguments)
- 因此这里的this指的是arguments,也就是这里的实参fn,1,这样就能理解为什么这里要传两个参数了吧。
所以 答案是
iframe的个数
2