javascript - 将 "this"引用到自定义变量

标签 javascript this

我正在做这样的事情:

var talkAPI = {
    init: function(){
        setInterval(function(){
            this.speak();
        },1000);
    },
    speak: function(){
         //Something else
    }
};

但是,我发现这并没有像我预期的那样工作。所以我做了一些测试,我发现 setInterval 中的 this 指的是 Window。而这不是我想要的。那么我怎样才能将this重新引用到talkAPI呢?因为我不想这样做:

setInterval(function(){
    window.talkAPI.speak();    //Not so good
},1000); 

最佳答案

你需要保存原来的this用于回调

init: function() {
    var self = this;
    setInterval(function(){
        self.speak();
    },1000);
},

关于javascript - 将 "this"引用到自定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10307051/

相关文章:

javascript - 在另一个页面上显示 jquery 变量

javascript - jQuery fn 属性

java - 了解 "this"在 Java 中的使用

javascript - 对 'this' 的内部引用未在返回对象中解析

javascript - 在 javascript 中声明具有元素 1, 2, 3....n 的数组的最简单方法是什么

javascript 在事件发生之前触发

javascript - Node js从不同的进程获取和设置数据

JavaScript 闭包(this)

javascript - 如何将按钮传递给onclick中的匿名回调函数?

java - 为什么在 java 接口(interface)中使用 this 关键字,它指的是什么?