我一直在搞乱jQuery插件代码,我试图把所有的公共变量放到一个单一的对象中,以方便访问。我已经在下面列出了几个关于我如何完成这个任务的例子,但我想知道其他人如何处理这个问题。是否可以在同一个对象内引用对象?
可以说我有这个
var x = function(options){
var defaults = {
ulist : $('ul#list'),
listLen : $('ul#list').children().length
}
$.extend(options, defaults);
// do other stuff
}
我试图做的是使用ulist
对象为基地,然后找到我想我可以做li
的
数量这样的:
var x = function(options){
var defaults = {
ulist : $('ul#list'),
listLen : 0
}
defaults.listLen = defaults.ulist.children().length;
$.extend(options, defaults);
// do other stuff
}
或本:
var x = function(options){
var defaults = {
ulist : $('ul#list')
};
var defaults2 = {
listLen : defaults.ulist.children().length
}
$.extend(defaults, defaults2);
$.extend(options, defaults);
// do other stuff
}
上面的代码示例只是放在一起,只是意味着将想法传达给您。无论如何,有没有更好的方法来做到这一点?
@stereofrog:这就是我一直在寻找的,谢谢!你会把它添加为答案,所以我可以接受它吗? – Mottie 2010-05-13 19:28:48
如果你打算采用函数的方法来获得当前的长度,我仍然在默认对象之外添加函数,所以你可以把函数调用运算符'()'放在最后,让你可以像访问属性一样访问'defaults.listLen'(就像在jQuery对象上调用.length一样)。我会更新我的答案,但随时接受stereofrog的答案,因为他指出了这种方法。 – user113716 2010-05-13 19:49:40