我会避免评估。
要解决此问题,您应该了解有关Javascript的这些知识。
- 函数是一类对象,因此它们可以是对象的属性(在这种情况下,它们称为 方法 ),甚至可以是数组的元素。
- 如果您不选择函数所属的对象,则它属于全局范围。在浏览器中,这意味着您将其挂在名为“ window”的对象上,这是全局变量所在的位置。
- 数组和对象紧密相关。(有传言说,它们甚至可能是乱伦的结果!)您通常可以使用点
.
而不是方括号来代替[]
,反之亦然。
您的问题是考虑点引用方式而不是方括号方式的结果。
所以,为什么不这样
window["functionName"]();
假设您的职能生活在全球空间中。如果已命名空间,则:
myNameSpace["functionName"]();
避免使用eval,并避免将字符串传入setTimeout和setInterval。我写了很多JS,而且我从不需要评估。“需要”评估源于对语言的了解不够深。您需要了解范围,上下文和语法。如果您曾经评估过,请问一下-
您将很快学习。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)