7wp*_*7wp 3 javascript reflection
有没有办法通过反射在JavaScript中调用对象上的函数(或属性)?
让我们说在运行期间,我的代码已经确定objectFoo确实有一个名为'bar'的属性.现在我的代码知道了,接下来要做的就是调用它.通常我会这样做:var x = objectFoo.bar.但是'bar'是在运行时确定的,所以我需要使用反射来调用它.
在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)