您的位置:首页 > 其它

关于this指向问题

2015-11-09 16:56 405 查看
好久没有在csdn上写博客了。

今天面试有这样一道题

var length = 10;
var m = function (){
console.log(this.length);
};
obj = {
length: 5,
s:function(fn){
console.log(this.length);
fn();
arguments[0]();
}
};
obj.s(m);


结果是 5,10, 1

第一个输出5很清楚,第二个fn()执行在全局环境下,输出10,

第三个好玩了输出1

arguments的形式是{

0:fn,

1://无

2://无

},所以
arguments[0]();执行在arguments中,输出this.length;所以为1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: