我正在尝试构建一行代码来动态更改函数名称,通过这样做我将每个函数的名称存储在一个变量中(从 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/