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

Der*_*會功夫 1 javascript this

我正在做这样的事情:

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

但是,我发现这不符合我的预期.所以我做了一些测试,我发现,thissetInterval被提及Window.这不是我想要的.所以,我怎么能再次指thistalkAPI?因为我不想这样做:

setInterval(function(){
    window.talkAPI.speak();    //Not so good
},1000); 
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 5

您需要保存原始文件this以用于回调

init: function() {
    var self = this;
    setInterval(function(){
        self.speak();
    },1000);
},
Run Code Online (Sandbox Code Playgroud)