我需要dateFormat
为几个日期选择器设置。
定义 的最佳方法是dateFormat
什么?
定义一个简单的方法,如
function dateFormat() {
return 'yy-mm-dd';
}
或全局变量,如
dateFormat = 'yy-mm-dd'
?
我需要dateFormat
为几个日期选择器设置。
定义 的最佳方法是dateFormat
什么?
定义一个简单的方法,如
function dateFormat() {
return 'yy-mm-dd';
}
或全局变量,如
dateFormat = 'yy-mm-dd'
?
好的,根据您的评论:
@MarkusHofmann,感谢您的回复。如果有的话,你能帮我看看什么时候在 jquery 中使用全局变量吗?
…我一直在寻找有关在jQuery中使用全局变量的信息。
在这里,我将总结一下我的发现。您可以在此答案的末尾找到来源。
通常,您只需省略即可定义全局变量var
(就像您在问题中所做的那样):
dateFormat = 'yy-mm-dd';
但!!!省略var
会生成一个隐式全局,这是一件坏事,并且会在严格模式下产生错误。
但是,如果您需要在生产代码中生成全局变量(应该避免),请始终显式声明它们:
window.dateFormat = 'yy-mm-dd';
您可以使用上述方法在 window / jQuery 对象的命名空间内创建全局变量:
窗口对象:
window.myNameSpace = {
dateFormat = 'yy-mm-dd',
...
};
jQuery 对象:
$.myNameSpace = {
dateFormat = 'yy-mm-dd',
...
};
但是请记住命名命名空间时要小心,因为如果有另一个相同的命名空间来自插件左右,可能会发生命名冲突。我建议将全局变量封装在一个全局命名空间中,因为这使它独立于 jQuery,并且不会弄乱它的命名空间。
将全局变量封装在一个全局命名空间中:
var MyNameSpace = {}; // The global object container
MyNameSpace.dateFormat = 'yy-mm-dd';
长话短说:最好避免使用全局变量。
我想在我的答案中再添加一件事:当我为 jQuery 编写插件时,我将所有代码放在立即调用函数表达式(IIFE)中,然后传递函数jQuery,并将参数命名为$。此闭包允许您拥有自己的私有变量并保护 jQuery$
别名:
(function( $ ){
...YOUR CODE HERE...
})( jQuery );
Ben Alman在他的网站上有一篇很好的帖子,提供了有关 IIFE 的更多信息。
在 StackOverflow 上还有一个与 IIFE 相关的问题值得一读:
Using 'window', 'document' and 'undefined' as arguments in anonymous function that wraps a jQuery plugin