Js Fiddle:点击这里
我在类的方法中有setInterval().它在创建单个实例时正常工作,但在创建多个实例时失败.创建多个实例时,只有最后创建的实例有效,其他实例停止.
我的脚本如下:
function timer() { this.ran = Math.floor(Math.random() * 100) + 1; this.cls = this.ran + '_ocar'; this.div = '' + this.cls + ''; $('body').append(this.div); this.run = function() { thi = this; thi.k = 0; setInterval(function() { console.log(thi.cls); $('.' + thi.cls).html(thi.k++); }, 1000); } } one = new timer(); one.run(); setInterval(function() { new timer().run(); }, 5000);
Dave Salomon.. 7
thi = this;
正在全局命名空间中创建,因此每次初始化时都会被覆盖new timer()
.
将其更改为var thi = this;
.
https: // jsfiddle.net/ daveSalomon/ h5e8LLg3/ `
我不喜欢thi
作为var名称 - 它看起来像一个错字.我通常使用_this
或_scope
.
thi = this;
正在全局命名空间中创建,因此每次初始化时都会被覆盖new timer()
.
将其更改为var thi = this;
.
https: // jsfiddle.net/ daveSalomon/ h5e8LLg3/ `
我不喜欢thi
作为var名称 - 它看起来像一个错字.我通常使用_this
或_scope
.