Moh*_*han 4 javascript arguments function
我在下面有一个小代码片段
var foo = {
bar: function () {
return this.baz;
},
baz: 1
};
(function () {
return typeof arguments[0]();
})(foo.bar);
baz = 1;
//result undefined
Run Code Online (Sandbox Code Playgroud)
当foo.bar函数执行时,this指的是窗口范围,当然baz我baz=1在窗口中定义了什么.但该计划仍然没有工作和返回undefined.为什么它返回undefined时baz在窗口定义,我从窗口执行foo.bar
当你执行类似的函数时arguments[0](),则this指的arguments是没有属性的对象baz,所以它仍然是undefined.
您可以通过以下方式绑定this到某个对象:
arguments[0].call(foo)或arguments[0].apply(foo).
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |