我看到很多带有函数的命名空间示例,但它是否为o.k.以这种方式声明变量(全局到我的程序)?命名空间变量 - javascript
var mynamespace = {}; mynamespace.var1 = 5;
或者应该将所有变量放在名称空间内的函数中?
我看到很多带有函数的命名空间示例,但它是否为o.k.以这种方式声明变量(全局到我的程序)?命名空间变量 - javascript
var mynamespace = {}; mynamespace.var1 = 5;
或者应该将所有变量放在名称空间内的函数中?
您应该避免全局变量... 改用某种模块模式,例如
(function() {
"use strict";
var myVar = 'blob';
}());
见http://yuiblog.com/blog/2007/06/12/module-pattern/
编辑:
更多的澄清:
var NS1 = NS1 || {};
NS1.myModule = function() {
"use strict";
var myVar = 'blob';
return {
myPublicMethod: function() {
return myVar;
}
};
}();
那么什么是“严格使用”?那是我选择的命名空间名称吗?这是否创建没有任何其他代码的名称空间?我去了博客,但没有使用,因为我没有使用雅虎我仍然有点困惑。你是说上面的函数没有var myNS =(函数...,它是在代码中显示的? – agent86
“使用strict”与模块模式或全局变量无关,但我添加它,因为它是好的它告诉浏览器只使用javascript的“好的部分”。 http://www.yuiblog.com/blog/2010/12/14/strict-mode-is-coming-to-town/ – MonkeyVoodoo
'用户严格'是一个JavaScript浏览器指令,它告诉浏览器不允许使用错误的js并进行一些其他类型的优化 –
这要看是什么,如果有的话,你认为可以接受的在全局命名空间 –
也许这帮助:http://stackoverflow.com/q/8862665/218196 –