将参数传递给内部匿名函数

Pass arguments to inner anonymous function

我尝试在 WordPress 中创建一个功能,以使用 JS 添加自定义程序颜色设置。
我的函数是:

function customize_color(id,selector,prop){
    wp.customize(id, function(value) {
        value.bind(function(to) {
            $(selector).css({   
                prop:to
            });
        });
    })
}

我想这样称呼它:

customize_color('body_background','body','background')

通过调试器,我注意到在 function(to) 内部我可以使用外部函数的 selector 参数。但是 prop 在那里无法访问。
据我所知,它适用于闭包。但是 selector 不应该在内部函数中可见。

有人能说说它为什么在那里吗?
也许如何编辑它才能访问 prop


编辑

感谢 Tim Vermaelen,我理解并记住了 {prop:to} 将使用 prop 键创建一个对象(而不是 'background' 属性 作为键)。
调试器还说 "Error: Variable has been optimized out" 对于 prop 变量。 我删除了 {prop:to} 部分,可以从内部函数的调试器中看到这个变量。
所以问题不是因为闭包...

我发现从字符串变量创建对象键的正确方法是下一个:

var rules={}
rules[prop]=to
$(selector).css(rules);

因此我可以将对象传递给 .css()

我认为问题出在您使用 .css() 函数的方式上。 您可以使用对象文字传递属性和值的集合,这就是您所做的。或者您可以传递一个带有值的 属性。这两个选项需要一些不同的语法。

试试这个:

$(selector).css(prop, to);