如何为数组中的变量创建别名?

时间:2012-02-10 21:56:26

标签: javascript jquery alias

我正在研究一个带有一些用户可定义变量的jQuery插件。

(function ($) {
    var defaults = {
        foo: [{bar: 'bar'}]
    }

    $.fn.fooBar = function (config) {
        var settings = $.extend({}, defaults, config);

        $.each(settings.foo, function(key, value){
            console.log(value.bar);  // prints 'bar'
        });
    };
})(jQuery);

现在我希望能够如下调用

// notice how I've capitalized 'bar' as the variable name
$(document).fooBar({foo: [{Bar: 'Bar'}]});​  // DOES NOT WORK

// and
$(document).fooBar({foo: [{bar: 'bar'}]});  // WORKS

基本上我需要能够为大写或小写创建bar的别名。我怎样才能在Javascript中实现这一点?

2 个答案:

答案 0 :(得分:1)

不确定这是否是正确的方法,但这就是我如何实现我所需要的。

(function ($) {
    var defaults = {
        foo: [{bar: 'system bar'}]
    }

    $.fn.fooBar = function (config) {
        var settings = $.extend({}, defaults, config);

        $.each(settings.foo, function(key, value){
            // A quick check to see if the user is using capital letters
            // or lower case letters. We can be flexable as long as they're 
            // being consistent.
            if (typeof this.Bar !== 'undefined') {
                this.bar = this.Bar;
            }
            console.log(value.bar);  // prints 'user Bar'
        });
    };
})(jQuery);



$(document).fooBar({foo: 
    [
        { bar: 'lower user bar'}, 
        { Bar: 'UPPER user Bar'}
    ]
});

答案 1 :(得分:0)

规范化配置映射的关键字大小,并将其扩展为而不是传入的映射。