JavaScript匿名函数参数传递?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (44)

有一些javascript代码(在一个对象中):

toggle: function() {
    var me = this;
    var handler = function() { me.progress() };
    me.intervalId = setInterval(handler, me.intervalTime);
    //...More code
}

对javascript

var handler = (function(o) { o.progress();})(this));
提问于
用户回答回答于

可以使用“.bind()”:

var handler = function() { this.progress(); }.bind(this);
用户回答回答于

原因

var handler = (function(o) { o.progress();})(this));

不工作,因为它只是立即调用anon函数,因此立即调用并将anon函数(未定义)的返回值赋给.您需要从外部函数返回一个实际函数:

handler = (function(me){
    return function(){
        return me.progress();
    }
}(this));

扫码关注云+社区

领取腾讯云代金券