javascript - 将字符串作为函数执行

标签 javascript jquery function eval

我正在尝试构建一行代码来动态更改函数名称,通过这样做我将每个函数的名称存储在一个变量中(从 html 元素中获取,不重要)。无论哪种方式,我想要做的是:

var validateType = $this.data("type");

new Validator.validateType($this.val(), validateLength)

Validator 是一个对象,那么“validateType”当然是那个对象中每个子函数的名称。 “validateType”也是变量。

我得到这个错误:TypeError: validator.validateType is not a function

我试过:

 new Validator.window[validateType]($this.val(), validateLength)

但它不起作用,它说:TypeError: Validator.window is undefined

最佳答案

您需要使用 'bracket' notation .既然你说 Validator 是一个对象而不是构造函数,你不需要使用 new .

试试这个:

Validator[validateType]($this.val(), validateLength)

关于javascript - 将字符串作为函数执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22338205/

相关文章:

javascript - 如何管理 Angular js 依赖关系和模块化?

jquery nextAll 并跳过第一个元素

c - 函数内外变量值的区别

javascript - 剪辑背景图像的部分/框

javascript - 样式密码填充输入

c - 我需要将结构数组传递给函数[大代码]

python - 将 exec()/compile() 与用户输入一起使用

javascript - 为什么 fetch 返回 302 状态码而 XHR 没有?

javascript - 如何创建按 Enter 时充当链接的 <input>

javascript - 如何在 asp.net C# 中使用 jquery 绑定(bind) ul 标签