看来我不能在setInerval
函数里面使用this
。这是为什么?什么是优雅的解决方案?在setInterval里面不能使用'this'
<html>
<script>
var something = function(tMessage){
this.message = tMessage;
};
something.prototype = {
start : function(counter){
document.getElementById('result').innerHTML += this.message + "+++<br />";
var looper = setInterval(
function(){
// This is printing "undefined"
document.getElementById('result').innerHTML += this.message + "<br />";
if(!counter--)
clearInterval(looper);
},
20
);
}
};
window.onload = function(){
var e = new something("hi");
e.start(2);
}
</script>
<body>
<div id="result"></div>
</body>
</html>
编辑
感谢您的答案!但任何人都可以解释发送参数和设置和额外变量之间的区别吗?任何内存问题?
因为这个==窗口里面的setInterval()回调函数 –