В веб-приложении на основе jQuery у меня есть различные сценарии, в которых могут быть включены несколько файлов, и я использую только один из них (я знаю, что не включая все из них было бы лучше, но я Я просто отвечаю за JS, так что это не мое решение). Поэтому я оборачивать каждый файл в initModule()
функции, которая регистрирует различные события и делает некоторые инициализации и т.д.Частные функции в JavaScript
Теперь мне любопытно, есть ли какое-либо различие между следующими двумя способами определения функций не захламлением глобального пространства имен:
function initStuff(someArg) {
var someVar = 123;
var anotherVar = 456;
var somePrivateFunc = function() {
/* ... */
}
var anotherPrivateFunc = function() {
/* ... */
}
/* do some stuff here */
}
и
function initStuff(someArg) {
var someVar = 123;
var anotherVar = 456;
function somePrivateFunc() {
/* ... */
}
function anotherPrivateFunc() {
/* ... */
}
/* do some stuff here */
}
Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascript). – jwueller