我遇到了让这个JSFiddle工作的问题:
var mainFunction = function() {
this.text;
}
mainFunction.prototype.start = function(printText) {
this.text = printText;
var func = function() {
document.getElementById('test').innerHTML += this.text + '<br/>';
};
setInterval(func,1000);
}
mainFunction.prototype.updateText = function(printText) {
this.text = printText;
}
var test = new mainFunction();
test.start('hello');
setTimeout(function(){
test.updateText('bye');
},5000);
我想要的是前5秒打印你好,打印5秒后再见。
我不确定如何让函数(func)知道类的this.text参数已经改变。
答案 0 :(得分:0)
你搞砸了这里的背景。在某个变量中缓存this
并在间隔内使用它(或使用bind
):
this.text = printText;
var self = this;
var func = function() {
document.getElementById('test').innerHTML += self.text + '<br/>';
};
然后,只需修改实例的属性text
:
setTimeout(function(){
test.text = 'bye';
},5000);
答案 1 :(得分:0)