```js let length = 10 function fn() { console.log(this.length); } let obj = { length: 5, method(fn) { // 两次调用各输出什么 fn() arguments[0](0) } } obj.method(fn, 1) ``` 这道题目核心是在考 `this` 的指向,但是还有一些别的坑。 执行第一次 `fn` 的时候,这时候的 `this` 就是 `window`,但是 `window.length` 并不是指向用 `let` 声明的 `length` 上的,而是「返回当前窗口中包含的框架数量(框架包括frame和iframe两种元素)」,具体可以参考 [文档](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/length)。 执行第二次 `fn` 的时候,此时 `this` 为 `arguments`,`arguments.length` 为实参的长度,也就是 2。