Mai*_*tor 4 javascript coding-style
假设您刚刚实现了一个包含一些函数的JavaScript库,例如:
double = function(a){ return a*2; };
root = function(a,b,c){ return -b+Math.sqrt(b*b-4*a*c)/(2*a); };
hypotenuse = function(a,b){ return Math.sqrt(a*a+b*b); };
Run Code Online (Sandbox Code Playgroud)
这样分发它并不是一个好主意,因为该代码会污染全局命名空间.
在发布之前格式化JavaScript库的正确方法是什么?
由于您的函数不使用类,不需要状态,并且与简单主题相关,您可以简单地将它们发布为
myMath = {
double: function(a){ return a*2; },
root: function(a,b,c){ return -b+Math.sqrt(b*b-4*a*c)/(2*a); },
hypotenuse: function(a,b){ return Math.sqrt(a*a+b*b); }
};
Run Code Online (Sandbox Code Playgroud)
现在假设你想要使用私有函数或状态,那么你可以使用模块模式:
myMath = (function(){
var square = function(x){return x*x}; // private function
return {
double: function(a){ return a*2; },
root: function(a,b,c){ return -b+Math.sqrt(square(b)-4*a*c)/(2*a); },
hypotenuse: function(a,b){ return Math.sqrt(square(a)+square(b)); }
}
})();
Run Code Online (Sandbox Code Playgroud)
但是这里没有理由使用这个结构.
现在请注意,在github上发布远不止于此(文档,测试单元,readme.md等),但很难在SO上进行建设性的讨论.
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |