小编典典

调用以变量命名的 JavaScript 函数

all

我有一个 JavaScript 变量,其中包含一个 JavaScript 函数的名称。该功能通过使用 $.ajax 等加载和放置而存在于页面上。

谁能告诉我如何调用变量中命名的 javascript 函数,好吗?

函数的名称在一个变量中,因为用于加载页面片段(被插入到当前页面)的 URL 包含要调用的函数的名称。

我愿意接受有关如何实施此解决方案的其他建议。


阅读 42

收藏
2022-08-17

共1个答案

小编典典

我会避免评估。

要解决这个问题,你应该了解这些关于 JavaScript 的知识。

  1. 函数是一等对象,因此它们可以是对象的属性(在这种情况下,它们称为 方法 )甚至是数组的元素。
  2. 如果您没有选择函数所属的对象,则它属于全局范围。在浏览器中,这意味着您将它挂在名为“window”的对象上,这是全局变量所在的位置。
  3. 数组和对象密切相关。(有传言说它们甚至可能是乱伦的结果!)您通常可以使用点 . 代替方括号 [] ,反之亦然。

您的问题是考虑引用的点方式而不是方括号方式的结果。

那么,为什么不类似,

window["functionName"]();

这是假设您的函数存在于全局空间中。如果您已命名空间,则:

myNameSpace["functionName"]();

避免 eval,并避免将字符串传递给 setTimeout 和 setInterval。我写了很多 JS,我从不需要 eval。“需要” eval
来自对语言的了解不够深入。您需要了解范围、上下文和语法。如果你曾经被一个 eval 卡住了,问一下——你会很快学会的。

2022-08-17