Доступ к переменной функции в JavaScript? - PullRequest
2 голосов
/ 14 октября 2019

Что делает этот код? Я просто пытаюсь понять библиотеку, которую я использую (скобка). Похоже, он устанавливает некоторые переменные для функции? Мне трудно даже гуглить это, потому что я не уверен, как это называется.

var define = function(module, deps, payload) {
    if (typeof module !== "string") {
        if (define.original)
            define.original.apply(this, arguments);
        else {
            console.error("dropping module because define wasn\'t a string.");
            console.trace();
        }
        return;
    }
    if (arguments.length == 2)
        payload = deps;
    if (!define.modules[module]) {
        define.payloads[module] = payload;
        define.modules[module] = null;
    }
};

define.modules = {};
define.payloads = {};

1 Ответ

0 голосов
/ 14 октября 2019

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

Назначения в конце просто инициализируют свойства modules и payloads. В противном случае функция должна будет проверять это каждый раз, например:

if (!define.modules) {
    define.modules = {};
    define.payloads = {};
}

перед кодом, который добавляет новые записи в эти объекты. Но так как это нужно сделать только один раз, расточительно проверять это каждый раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...