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