2011-09-24 69 views
2

我常常看到这样的描述为保证的jQuery插件的安全环境的方式:我是否还应该确保在jQuery插件封闭中未定义?

(function($){ 
    $.fn.myPlugin = function() { 
    ... 
    }; 
})(jQuery); 

那岂不是更好地维护也是不确定的,就像这样:

(function($, undefined){ 
    $.fn.myPlugin = function() { 
    ... 
    }; 
})(jQuery); 

或根本这没关系?如果是这样,为什么?

+1

你是什么意思“保障未定义”? – Jay

+1

它甚至可以重新定义未定义? – JohnD

+1

@JohnD:是的。 'undefined'实际上是全局对象的一个​​属性(即'window.undefined')(默认情况下* value *'undefined')。 –

回答

1

可能没有必要。如果测试变量是否为undefined,你应该更喜欢使用

typeof variable === 'undefined' 

反正。

另一方面,“保护”jQuery是您绝对应该做的事情,否则如果在noConflict模式下使用jQuery,您的插件将无法工作。

相关问题