【问题标题】:Is this the correct way to form a closure in JavaScript? [closed]这是在 JavaScript 中形成闭包的正确方法吗? [关闭]
【发布时间】:2012-08-23 07:07:48
【问题描述】:

iD 是一个在循环中每次迭代都会改变的对象。同样在这个循环中,我运行以下命令:

$("td.item_holder > div").append(dynamo.shop.box.ini(item_info,(function(data){
    return function(){
        console.log(data);
    }
})(iD)));

我希望这会形成一个闭包。我唯一的疑问是,它调用的函数 dynamo.shop.box.ini 使用 .bind (jQuery) 如下:

ini : function(data,callback){
....
            var right = $('<div>').addClass("dynamo_right").html('bye').bind('click',callback);
....
    return container;
},

我是否需要在 .bind 调用上使用另一个匿名函数来保持关闭?

【问题讨论】:

标签: javascript function scope closures


【解决方案1】:

不,ini 本身就是一个函数,因此有自己的作用域。因此,每次调用时传递给ini 的参数不会改变,也不需要另一个闭包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多