拥有以下代码。
object.waypoint=function () {
this.uw=setInterval( function() {
console.log(this);
}, 200);
}
如何在第三行的函数内部引用“object”,我用“this”关键字尝试了它,但它似乎没有引用该对象。
答案 0 :(得分:1)
内部setInterval this
指的是窗口。您需要创建一个引用this
的变量。
object.waypoint=function () {
var me = this;
this.uw=setInterval( function() {
console.log(me);
}, 200);
}
答案 1 :(得分:1)
一种常见的方法是在变量中存储this
的引用,然后您可以使用它来访问正确的this
:
object.waypoint=function () {
// Keep a reference to this in a variable
var that = this;
that.uw=setInterval( function() {
// Now you can get access to this in here as well through the variable
console.log(that);
}, 200);
}
答案 2 :(得分:0)
我认为bind
是一个简洁的解决方案 - 它没有在所有浏览器中实现,但有workarounds。
object.waypoint = function(){
this.uw = setInterval(function(){
console.log(this);
}.bind(this), 200);
}
请参阅MDN page了解正确的文档