var obj = { name: 'name', foo: function () { console.log(this); // Object {name: "name"} setTimeout(function () { console.log(this); // Window }, 1000); }, foo2: function () { console.log(this); // Object {name: "name"} setTimeout(() => { console.log(this); // Object {name: "name"} }, 2000); }}为什么settimeout中的函数this指向window?而箭头函数this指向Object是因为settimeout是window对象的方法还是说当做直接调用一个函数?
2 回答
zangbianxuegu
TA贡献1条经验 获得超0个赞
因为 setTimeout 这个方法是挂载到 window 对象上的。setTimeout 执行时,执行回调函数,回调函数中的 this 指向调用 setTimeout 的对象,window
添加回答
举报
0/150
提交
取消