Ответ 1
Если функция определена на глобальном уровне, она автоматически становится дочерним элементом объекта window
.
Поэтому вы всегда можете вызвать window.functionName();
любое место, которое вы обычно вызываете functionName();
.
Кроме того, поскольку в объектах Javascript работают как ассоциативные массивы, вы можете вызывать любой дочерний объект любого объекта с использованием синтаксиса массива следующим образом: object['childName']
. Это включает в себя функции, поэтому вы можете сделать object['functionName']();
для любой функции, являющейся членом объекта.
Объединяя эти две точки вместе, вы можете вызвать любую глобально определенную функцию, например:
window['functionName']();
И поскольку functionName
в приведенном выше примере представляет собой строку, вы можете использовать переменную в этих скобках, что означает, что у вас есть те же функции, что и PHP call_user_func()
.
[EDIT]
Как я уже говорил, это работает для любого объекта. Комментарии OP указывают, что функции, которые он хочет использовать таким образом, находятся в подключаемом модуле JQuery. Поэтому они, вероятно, будут частью объекта JQuery и обычно называются так: JQuery().functionName();
(или с $
вместо JQuery
).
Синтаксис Javascript позволяет использовать ['functionName']()
в любом месте, где мы можем использовать .functionName()
, поэтому, взяв пример JQuery, мы могли бы изменить его так:
JQuery()['functionName']();`
Но этот метод может быть адаптирован для любого объекта Javascript. В любом месте, где вы используете .functionName()
, его можно заменить на ['functionName']()
.