javascript - 在 Javascript 上从自身调用原型(prototype)

标签 javascript

我想从自身调用迭代,最好的方法是什么?

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/

相关文章:

javascript - Firefox 点击事件错误

javascript - Konva 实时更新一个正确的位置

javascript - Angular JS 脚本适用于 Firefox,不适用于 IE 11

javascript - 用 PHP 时间算出 JavaScript 时间

javascript - 将组件的状态分配给 React.js 中的变量

javascript - 使用 for...of 循环删除数组项

php - 如何检查输入数组字段类型文件空是否未上传

在 HTML5 Canvas 上绘制时出现 javascript Uncaught TypeError

javascript - 奇怪的 javascript 行为(作业)

javascript - 访问嵌套的 Immutable Map 属性