settimeout中的函数this指向window

xiaoxiao2021-02-28  131

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哦!!

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); }, foo3: function(){ console.log(this); setTimeout(function(){console.log(this);}.bind(this), 2000) } }
转载请注明原文地址: https://www.6miu.com/read-32279.html

最新回复(0)