我已经使用变量和方法声明了一个对象。 这里简化了
var myObj = {
myTimer: null,
startTimer: function(){
clearTimeout(myObj.myTimer);
myObj.myTimer = setTimeout("myObj.myFunction()", 250);
},
myFunction: function(){
alert('Hi');
}
};
调用startTimer后,将向控制台输出以下错误
Uncaught ReferenceError: myFunction is not defined
Uncaught ReferenceError: startTimer is not defined
我该如何解决这个问题?
答案 0 :(得分:2)
您应该将函数传递给setTimeout
而不是字符串,最好使用this
而不是对象名称:
var myObj = {
myTimer: null,
startTimer: function(){
clearTimeout(this.myTimer);
this.myTimer = setTimeout(this.myFunction, 2500);
},
myFunction: function(){
alert('Hi');
}
};
答案 1 :(得分:0)
我的代码实际上没有任何问题,尽管它可能更漂亮。
问题是我如何调用方法,而不是在对象本身内。