爲jQuery插件創建靜態變量的最佳方式是什麼?靜態變量一個jQuery插件;如何創建?
我有2個示例用例來說明我目前的想法;每個人都有一些想法。
任何其他的想法當然歡迎...
一個例子是爲一個靜態變量包含:動畫設置,佈局設置,產品詳細信息等;另一個用於靜態變量緩存數據。
我希望'靜態'是在這裏的正確terminolgy ...單一全局。如果錯誤請糾正。
案例1:設置
// defining globally
var anObject = {
value1 = 0;
value2 = 0;
}
jQuery.anObjectSet(partialObject) {
anObject = jQuery.extend(anObject, partialObject);
}
jQuery.fn.myPlugin = function (partialObject) {
obj = jQuery.extend(anObject, partialObject);
}
或可能?
// adding to the jQuery object
jQuery.anObject = {
value1 = 0;
value2 = 0;
}
jQuery.anObjectSet(partialObject) {
jQuery.anObject = jQuery.extend(jQuery.anObject, partialObject);
}
jQuery.fn.myPlugin = function (partialObject) {
obj = jQuery.extend(jQuery.anObject, partialObject);
}
或者可能嗎?
jQuery.anObjectSet(partialObject) {
if(!jQuery.anObject)
jQuery.anObject = {
value1 = 0;
value2 = 0;
}
jQuery.anObject = jQuery.extend(jQuery.anObject, partialObject);
}
jQuery.fn.myPlugin = function (partialObject) {
if(!jQuery.anObject)
jQuery.anObject = {
value1 = 0;
value2 = 0;
}
obj = jQuery.extend(jQuery.anObject, partialObject);
}
案例2:緩存
jQuery.fn.myPlugin = function (newObject) {
if(!cache[newObject])
cache[newObject] = $(newObject);
return cache[newObject];
}
或可能? (我在別處見過這種方法)
window.$cache = {};
jQuery.fn.myPlugin = function (newObject) {
if(!$cache[newObject])
$cache[newObject] = $(newObject);
return $cache[newObject];
}
謝謝。我想建立一個.js庫,開始正確的軌道...
ps,有一個「插件開發」部分@ http://docs.jquery。com/Tutorials,如果你想閱讀更多:-) – Seaux 2010-03-10 20:18:39
這是很好的〜一個問題:我在別處使用這種技術創建另一個插件。它包裹在上面推薦的匿名函數中。它會訪問$緩存嗎?或者插件的函數是否需要包含在同一個匿名函數中?去測試... – Ross 2010-03-10 20:34:25
@Danny感謝您的編輯。輝煌。如果只有可能,再次+1。 – Ross 2010-03-11 14:16:52