执行字符串作为函数

时间:2014-03-11 22:40:24

标签: 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

1 个答案:

答案 0 :(得分:2)

您需要使用'bracket' notation。由于您说Validator是一个对象而不是构造函数,因此您不需要使用new

试试这个:

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