繁体   English   中英

JavaScript | 正确的代码格式

[英]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 ,您可以将windowonload属性设置为init函数。 稍后,当页面完成加载时,将有人要求window执行其onload属性,然后window将执行类似this.onload()

  • 使用window.onload = init() ,您将在此处执行init并将windowonload属性设置为init函数执行的返回。 由于每个Javascript函数都返回某些内容(默认情况下为undefined ),因此您将设置window.onload = undefined 这不是您想要的。

这是一种口味风格的问题-有点像写一篇论文。 最终,重要的是任何人(或您,从现在起六个月)都可以阅读您的代码并了解正在发生的事情。 仅关注功能,您自然会开始就逻辑上的位置做出决策。

(口才的Javascript)[ http://eloquentjavascript.net//]也是一本关于该主题的好书。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM