@Nik_Set_7

Как написать цикл, вызывающий свойства-функции у объекта?

Вопрос глупый, но достаточно интересный.
Есть объект. Свойства в нём - это функции.
Мне нужно написать цикл, который:
  1. Будет иметь доступ к свойствам объекта;
  2. Получив доступ к свойству-функции, вызвать её;


var App = {
	var Function_1 = function(){  alert('1');  },
	var Function_2 = function(){  alert('2');  },
};

for(var i in App){
...
};


При записи в лоб естественно появляется ошибка, т.к. i воспринимается как строка.
Как правильно записать цикл?
  • Вопрос задан
  • 301 просмотр
Решения вопроса 2
Bobert88
@Bobert88
Vice President of Javascript, very important guy.
var App = {
    Function_1: function(){  alert('1');  },
    Function_2: function(){  alert('2');  },
};

for(var i in App){
  var value = App[i];
  // вызываем только если это действительно функция, иначе будет ошибка
  typeof value === 'function' && value();
};
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Получить массив имён функций Object.keys(App) и вызвать каждую:

var App = {
    Function_1: function(){ console.log(1); },
    Function_2: function(){ console.log(2);},
};

Object.keys(App).forEach( e => App[e]() );


P.S. вариант для «маэстро знает толк в ... »
Object.values(App).forEach( Function.prototype.call, Function.prototype.call);
не используйте этот вариант в production!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы