我用的是以下的代码
function Basket () {
this.items = new Array();
}
Basket.prototype.addItem = function(item) {
this.items.push(item);
setTimeout(this.showItems, 1000);
};
Basket.prototype.showItems = function() {
console.log( items in Basket: +this.items.join( , ));
}
var b = new Basket()
b.addItem( bananas )
// -> Uncaught TypeError: Cannot call method join of undefined
When calling the addItem method, the showItems method is called properly, but in the showItems method the variable "this" does not reference to the Basket object. Using the Prototype framework I could do something like
setTimeout(this.showItems.bind(this), 1000)
这将将变量“ 此” 与显示项目方法中的篮子对象捆绑在一起 。
问题:在jQuery中,我怎样才能做到这一点?是否有比这样包装调用方法更优雅的方法(最佳做法)?
// ...
$this = this
setTimeout(function() {$this.showItems($this)}, 1000)
Basket.prototype.showItems = function ($this) {
console.log( items in Basket: +$this.items.join( , ));
}
如果有人能张贴一些有用的关键词,我也会很高兴的,如果有人能张贴一些有用的关键词,我如何能够找到这些问题,正如我肯定的那样,我不是唯一的一个问这个问题的人。 但自然,在您没有框架的时候,寻找“原型”是非常困难的,而寻找对象的延伸(或如何称呼它 ) 。
十六进