我一直在搞亂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