Вызов функции пространства имен по ее полному имени из того же пространства имен

Есть ли какая-то причина, по которой вы захотите вызывать функцию, определенную внутри пространства имен, созданного с использованием шаблона раскрывающегося модуля с использованием его полностью определенного имени? Например, А против Б ниже?

Пример А.

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 внутри функции они идентичны.

Другие вопросы по тегам