1.function(){ return{}}
- это закрытие для добавления «конфиденциальности» к переменным и функциям, которые вы не хотите, чтобы они были доступны где-либо еще, кроме как в рамках этой функции.Скобки вокруг функции (function(){})
создают выражение функции.Они используются, потому что синтаксический анализатор будет жаловаться, когда вы попытаетесь выполнить функцию немедленно function(){}()
без передачи аргумента ()
.
2.Если вы хотите, чтобы subA
или любой другой расширяющий объект имел свои собственные подфункции, тогда да, вы должны объявить его таким образом, но не обязательно как ограничение.
Вы можете сделать
ex.subA = function(x, y){
return x+y;
}
, который можно назвать var sum = ex.subA(2, 3);
Или вы можете сделать
ex.subA = (function(){
return {
add: function(x, y){
return x+y;
},
multiply: function(x, y){
return x*y;
}
}
})();
Затем назовите его var sum = ex.subA.add(2, 3); var multiplication = ex.subA.multiply(2,3);
Есть много способов сделать это.
3.Да, это правда.Вы можете сделать частные функции общедоступными.Закрытие не позволит другим способом сделать это.
4.Если вы хотите использовать псевдоним, вы можете присвоить его переменной.Однако в этом нет необходимости.Он будет работать так, как вы его описываете.
Чтение Основные шаблоны пространств имен JavaScript , чтобы понять некоторые основы и шаблоны в пространстве имен javascript.
Первый оператор if в subA.js отличается от var ex = ex ||{};Что лучше?
Прежде всего, оператор if должен быть if(typeof ex == 'undefined')
, typeof
возвращает строку.Нет необходимости проверять, ложно ли ex
.
Да, это не так.Оператор if не будет назначать переменные, если переменная ex
уже определена.Таким образом, оператор if лучше.
Какие стандарты стиля кода js вы используете?
Зависит от объема проекта, но в основном это глубокий объект, расширяющийся с помощьювспомогательная функция.