在对象文字内调用访问命名函数

时间:2018-03-23 10:53:30

标签: javascript

我想调用在对象文字中定义的所有函数,但我似乎无法弄清楚如何。函数必须被命名,所以我可以将它们称为functions.function1();

结构是这样的:

var functions = {
    function1: function(){
        /* Important stuff */
    },
    function2: function(){
        /* Important stuff */
    }
    .
    .
    .
    functionN: function(){
        /* Imporant stuff */
    }
}

我尝试调用它们的方式的变化是这样的:

for (var i = 0; i < functions.length; i++) {
    functions[i].call()
}

但由于functions没有长度属性,我不能这样称呼它。

有什么想法吗?

感谢您的帮助!: - )

3 个答案:

答案 0 :(得分:1)

使用Object.keysforEach

Object.keys( functions ).forEach( s => functions[s]() )

<强>演示

&#13;
&#13;
var functions = {
    function1: function(){
       console.log(1);
    },
    function2: function(){
       console.log(2);
    },
    functionN: function(){
       console.log("n");
    }
};

Object.keys( functions ).forEach( s => functions[s]() )
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以遍历对象的键并相应地调用函数。以下是一个例子:

&#13;
&#13;
var functions = {
  function1: function() {
    console.log('func1');
  },
  function2: function() {
    console.log('func2');
  },
  functionN: function() {
    console.log('funcN');
  }
}

Object.keys(functions).forEach(f => functions[f].call());
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用for...in循环遍历对象属性:

for (func in functions) {
    if (functions.hasOwnProperty(func)) {
        functions[func]();
    }
}