Выполнять функции на основе объекта, заданного в качестве значения свойства - PullRequest
0 голосов
/ 13 июня 2018

У меня есть объект, содержащий значения свойств в качестве имен функций.Это мой объект 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?

1 Ответ

0 голосов
/ 13 июня 2018

Цикл 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...