为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