2014-10-21 3 views
0

Я новичок в JavaScript и задаю вопрос. При создании новой программы лучше всего создать все мои функции в глобальной переменной/объекте или создать их все отдельно.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(); 

Это может быть очень глупый вопрос, чтобы спросить ...

+0

Это полностью зависит, но если функции тесно связаны с ИМО, их следует сгруппировать, чтобы отразить это. Он также позволяет избежать загрязнения глобального пространства имен, что важно. –

+0

только для начала: взгляните на http: //javascript.crockford.com/private.html –

+0

JBTW: JavaScript обычно имеет отступы с 4 пробелами – DividedByZero

ответ

2

При создании новой программы лучше всего создать все мои функции в глобальной переменной/объекте или создать их все отдельно.

Это мнение основано на мнениях, но я дам вам веские основания для создания всех ваших свойств внутри глобального объекта: вы не будете загрязнять пространство имен. Это означает, что вы не будете создавать много глобальных объектов, которые были бы свойствами глобального объекта (, в браузерах).

Если вы используете чужую библиотеку, и если вы и он создадите глобальные объекты, скрипт, который был включен позже в 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, вы устанавливаете onload свойство в window быть init функция. Позже, когда страница закончит загрузку, кто-то попросит window выполнить свое свойство onload, а window затем сделает что-то вроде this.onload().

  • с window.onload = init(), вы выполняете init прямо и установку onload свойства window быть возвращением выполнения функции init. Поскольку каждая функция Javascript возвращает что-то (по умолчанию undefined), вы будете устанавливать window.onload = undefined. И это не то, что вы хотите.

+0

Это очень чистый ответ, который отвечает на вопрос, который у меня был, хотя мой вопрос не был ясен. – hudsond7

0

Это дело вкуса стиль- -kindof, как писать эссе. В конечном счете, важно то, что любой (или вы, через шесть месяцев) можете прочитать ваш код и понять, что происходит. Просто сосредоточьтесь на функциональности, и вы, естественно, начнете принимать решения о том, что логично.

(Красноречивый Javascript) [http://eloquentjavascript.net//] также является отличной книгой на эту тему.

+0

Прочитайте это сейчас. – hudsond7

Смежные вопросы