Я сценарий коллеги, который пронизан следующим кодом:
(window.WORLD_CLOCK || (window.WORLD_CLOCK = WORLD_CLOCK))();
Теперь есть функция с именем WORLD_CLOCK
, которая определена перед этой строкой.
Из чегоЯ предполагаю, что это проверяет, чтобы увидеть, содержит ли объект window
ключ с именем WORLD_CLOCK
, если он делает (true
), он возвращает эту функцию, если нет (false
), он назначает WORLD_CLOCK
окнуи возвращает функцию WORLD_CLOCK
из этого назначения.
Внешняя скобка захватывает эту функцию, а третья (пустая) пара скобок вызывает эту функцию.
Верно ли это предположение?
Если это так, было бы целесообразно заменить эту строку следующим кодом:
if (typeof WORLD_CLOCK === "function") {
if (!window.hasOwnProperty("WORLD_CLOCK")) {
window.WORLD_CLOCK = WORLD_CLOCK;
}
window.WORLD_CLOCK();
}
Спасибо.