我想从自身调用迭代,最好的方法是什么?
function Items(names) {
this.name = "Bo";
this.iteration();
}
Items.prototype.iteration = function(){
console.log("calling iteration");
setTimeout(function(){
this.iteration(); // <----------- Wrong
this.prototype.iteration(); // <----------- Wrong
// right way <-------------- undefined
} ,1000 );
}
认为这些会像this.name
一样工作会的。
最佳答案
您必须将函数绑定(bind)到当前上下文 (=> this
),例如使用 bind
函数:
function Items(names) {
this.name = "Bo";
this.iteration();
}
Items.prototype.iteration = function(){
console.log("calling iteration");
setTimeout(this.iteration.bind(this), 1000);
}
关于javascript - 在 Javascript 上从自身调用原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400060/