我想调用在对象文字中定义的所有函数,但我似乎无法弄清楚如何。函数必须被命名,所以我可以将它们称为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
没有长度属性,我不能这样称呼它。
有什么想法吗?
感谢您的帮助!: - )
答案 0 :(得分:1)
使用Object.keys
和forEach
Object.keys( functions ).forEach( s => functions[s]() )
<强>演示强>
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;
答案 1 :(得分:0)
您可以遍历对象的键并相应地调用函数。以下是一个例子:
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;
答案 2 :(得分:0)
使用for...in
循环遍历对象属性:
for (func in functions) {
if (functions.hasOwnProperty(func)) {
functions[func]();
}
}