JavaScript:通过反射调用函数或调用属性

7wp*_*7wp 3 javascript reflection

有没有办法通过反射在JavaScript中调用对象上的函数(或属性)?

让我们说在运行期间,我的代码已经确定objectFoo确实有一个名为'bar'的属性.现在我的代码知道了,接下来要做的就是调用它.通常我会这样做:var x = objectFoo.bar.但是'bar'是在运行时确定的,所以我需要使用反射来调用它.

Ann*_*lle 7

在JavaScript中,对象方法实际上只是包含函数的属性.与所有属性一样,您可以使用关联数组语法来引用它们:

var x = { 'a': 1 };
x.a += 1;
x['a'] += 1;
console.log(x.a);
Run Code Online (Sandbox Code Playgroud)

输出是:3.

因此,如果您有要调用的方法的名称myObject:

var methodName = 'myMethod';

// Invoke the value of the 'myMethod' property of myObject as a function.
myObject[methodName]();
Run Code Online (Sandbox Code Playgroud)

  • 我的答案就是这个...它有这个和Eval. (2认同)