我有一个包含属性值的对象作为函数名称。这是我的对象obj
:
var obj = {
beforeCalc: beforeCalc,
calcEcn: calcEcn
};
function beforeCalc() {
console.log("beforeCalcMethodExecuted");
}
function calcEcn() {
console.log("calcEcnMethodExecuted");
}
像这样运行对象属性值。
function runMethodsFromObj() {
for (var i in obj) {
console.log(i); // beforeCalc, calcEcn
console.log(i()); //i is not defined
}
}
runMethodsFromObj();
为什么回归undefined
?
for-in
循环为您提供物体的keys
和not their value
var obj = {
beforeCalc: beforeCalc,
calcEcn: calcEcn
};
function beforeCalc() {
console.log("beforeCalcMethodExecuted");
}
function calcEcn() {
console.log("calcEcnMethodExecuted");
}
function runMethodsFromObj() {
for (var i in obj) {
console.log(i); // beforeCalc, calcEcn
console.log(typeof i); // string
obj[i](); // Executes the stored function
}
}
runMethodsFromObj();