我正在尝试构建一行代码以动态更改函数名称,通过执行此操作,我将每个函数的名称存储在变量中(从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
答案 0 :(得分:2)
您需要使用'bracket' notation。由于您说Validator
是一个对象而不是构造函数,因此您不需要使用new
。
试试这个:
Validator[validateType]($this.val(), validateLength)