Вызов функции пространства имен по ее полному имени из того же пространства имен
Есть ли какая-то причина, по которой вы захотите вызывать функцию, определенную внутри пространства имен, созданного с использованием шаблона раскрывающегося модуля с использованием его полностью определенного имени? Например, А против Б ниже?
Пример А.
var namespace = (function defineNamespace() {
function sayNoThankYou() { }
function callMeMaybe() {
sayNoThankYou();
}
return {
callMeMaybe: callMeMaybe,
sayNoThankYou: sayNoThankYou
};
}());
Пример Б.
var namespace = (function defineNamespace() {
function sayNoThankYou() { }
function callMeMaybe() {
namespace.sayNoThankYou();
}
return {
callMeMaybe: callMeMaybe,
sayNoThankYou: sayNoThankYou
};
}());
1 ответ
Решение
Существует только одно различие между namespace.sayNoThankYou();
а также sayNoThankYou();
в вашем примере: значение this
внутри sayNoThankYou
функция. Если вы не используете this
внутри функции они идентичны.