我用骨干来测试一些东西,但我不知道为什么你画我猜只是没有显示@@”为什么你画我猜不工作
initialize: function() {
setInterval(function() {
//alert("Hello");
this.drawSomething();
}, 1000);
},
drawSomething: function() {
alert('hi');
},
我用骨干来测试一些东西,但我不知道为什么你画我猜只是没有显示@@”为什么你画我猜不工作
initialize: function() {
setInterval(function() {
//alert("Hello");
this.drawSomething();
}, 1000);
},
drawSomething: function() {
alert('hi');
},
的问题是,里面setInterval
回调背景下this
是不是你所期望的(这是全局对象window
)最简单的解决方法是保存在变量正确的对象引用:
var self = this;
setInterval(function() {
//alert("Hello");
self.drawSomething();
}, 1000);
与您使用骨干,所以可能你使用的强调过绑定应该帮助:
initialize: function() {
var foo = function() { this.drawSomething(); };
foo = _.bind(foo, this);
setInterval(foo, 1000);
}
或jQuery的模拟代理:
foo = $.proxy(foo, this);
为迅速解决
initialize: function() {
setInterval(function() {
//alert("Hello");
this.drawSomething();
}.bind(this), 1000);
},
drawSomething: function() {
alert('hi');
},
但我宁愿使用额外的变量dfsq methioned,因为一些旧的浏览器不支持绑定