var length = 10; function fn(){ alert(this.length) } var obj = { length: 5, method: function(fn) { arguments[0]() } } obj.method(fn)
这段代码中的arguments[0]()是第一个参数?带一对小括号是什么意思?
arguments[0]()的意思,和arguments.0()的意思差不多(当然这么写是不允许的),你更可以这么理解:
所以这里alert出来的结果是1。
arguments = {
0: fn, //也就是 functon() {alert(this.length)}
1: 第二个参数, //没有
2: 第三个参数, //没有
...,
length: 1 //只有一个参数
}
作者:Malcolm Yu
链接:https://www.zhihu.com/question/21466212/answer/18441962
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
本人认为: