var x = 1; var o = { x: 2, y: function() { console.log(this.x);
}
};
setTimeout(o.y, 1000);执行结果是:1,this指向了window var x = 1; var o = { x: 2, y: function() { console.log(this.x);
}
};
setTimeout(o.y(), 1000);执行结果是:2,this指向了o为什么加了()会改变this的指向?
1 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
o.y
是传递一个函数,这是window.setTimeout(fn,times)
的语法,表示经过times
毫秒后执行fn
,显然执行者是window
o.y()
就表示执行该函数,立即执行,跟定时器没关系,此时执行者就是o
添加回答
举报
0/150
提交
取消