我读到通常最好将javascript代码包含在功能块中,如此
(function () {
"use strict";
// stuff here
}());
但是如果代码是全局可访问的,例如函数或常量,可以在函数块之外,还是应该以另一种方式设置它?
另外 - 如果我将代码移到功能块JSLint之外,例如,would suggest我将use strict
语句移到功能块内。我必须做出让步吗?
答案 0 :(得分:0)
在函数内部进行设置有好处,这意味着未公开的私有变量保持私有。你可以通过{{1}来自该函数的东西将事物暴露给外界。
return
至于仅在内部函数中使用var module = (function() {
"use strict";
var private = "This is private!";
var publicFn = function() { return "This is public!"; };
return {
myFunction: publicFn;
};
})();
module.myFunction(); // This is public
,因为作者经常连接和缩小多个JavaScript文件,并且在函数范围之外使用"use strict"
将影响链中的所有其他文件(有时不会预期的行为并可能导致错误。)