[英]JavaScript | Proper way to format code
我是JavaScript新手,有个问题要问。 创建新程序时,最好在全局变量/对象中创建我的所有函数,或者单独创建它们。
例如:
var register = {
members: [],
Member: function(){
},
reset: function(){
},
printMembers: function(){
},
process: function(){
}
};
function init(){
register.process();
};
window.onload = init();
或者像这样:
var members = [];
function Member(){
};
function reset(){
};
function printMembers(){
};
function process(){
};
function init(){
process();
};
window.onload = init();
这可能是一个非常愚蠢的问题。
创建新程序时,最好在全局变量/对象中创建我的所有函数,或者单独创建它们。
这是基于意见的,但是我将为您提供在全局对象内创建所有属性的充分理由:您不会污染名称空间。 这意味着,您将不会创建很多全局对象,它们将是全局对象的属性(浏览器中的window
)。
如果您使用其他人的库,并且如果您和他俩都将创建全局对象,则HTML稍后包含的脚本将覆盖与其他脚本中声明的名称相同的属性。
最后,我建议您编写如下代码:
var app = {};
app.members = [];
app.Member = function(){};
app.reset = function(){};
app.printMembers = function(){};
app.process = function(){};
function init() {
app.process();
};
window.onload = init;
另外,请注意,您应该执行window.onload = init
,而不是window.onload = init()
。
区别:
使用window.onload = init
,您可以将window
的onload
属性设置为init
函数。 稍后,当页面完成加载时,将有人要求window
执行其onload
属性,然后window
将执行类似this.onload()
。
使用window.onload = init()
,您将在此处执行init
并将window
的onload
属性设置为init
函数执行的返回。 由于每个Javascript函数都返回某些内容(默认情况下为undefined
),因此您将设置window.onload = undefined
。 这不是您想要的。
这是一种口味风格的问题-有点像写一篇论文。 最终,重要的是任何人(或您,从现在起六个月)都可以阅读您的代码并了解正在发生的事情。 仅关注功能,您自然会开始就逻辑上的位置做出决策。
(口才的Javascript)[ http://eloquentjavascript.net//]也是一本关于该主题的好书。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.