【发布时间】:2014-03-27 10:20:08
【问题描述】:
我有两个问题。
是否可以在此对象内部为对象方法创建间隔?
下面是更好地说明问题的代码:
var Counter_01 = {
start_number: 0,
countUp: function() {
document.getElementById('display').innerHTML = this.start_number;
this.start_number++;
},
// is it possible to create interval for countUp function here?
}
第二个问题是,是否可以在对象创建期间运行函数,使用对象内部的间隔?
代码:
function Counter() {
this.start_number = 0;
this.countUp = function() {
document.getElementById('display').innerHTML = this.start_number; // code works when instead of "this.start_number" there is direct reference to the object name like "Counter_02.start_number"
this.start_number++; // the same here
}
this.interval = setInterval(this.countUp, 1000);
}
var Counter_02 = new Counter();
当此代码运行时,网络浏览器中只会显示“NaN”,而不是递增数字。
我试图使用参数传递对象名称,但它不起作用...
代码:
function Counter( name ) {
this.start_number = 0;
this.countUp = function() {
document.getElementById('display').innerHTML = name.start_number;
name.start_number++;
}
this.interval = setInterval(this.countUp, 1000);
}
var Counter_02 = new Counter( 'Counter_02' );
如何编写代码,允许在对象创建期间运行间隔,而不直接引用创建的对象名称?
我刚刚开始使用 javascript,我将不胜感激。
【问题讨论】:
-
在
setInterval中尝试this.countUp.bind(this)
标签: javascript object this setinterval