我正在研究一个带有一些用户可定义变量的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中实现这一点?
答案 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)
规范化配置映射的关键字大小,并将其扩展为而不是传入的映射。