我的问题很容易理解。我有一个JSON对象(参见代码),我将按照出现的顺序自动调用该对象的所有函数。
。
var installer = {
a : function() {
...
}
b : function() {
...
}
};
for(var func in installer) {
fn.call(document);
};
你知道为什么以前的代码不起作用吗?对不起,我是javascript的初学者。
提前致谢!
问候。
答案 0 :(得分:1)
您没有名为fn
的变量,并且您在函数定义的末尾也缺少逗号。
此外,您的函数不会按顺序调用,因为JavaScript会任意命令您的对象属性。您可能需要考虑使用数组,或者如下所述,指定一个确定顺序的数组。
var installer = {
a : function() {
...
},
b : function() {
...
},
};
var order = [ "a", "b" ];
for(var i = 0; i < order.length; i++) {
installer[order[i]].call(document);
}
答案 1 :(得分:0)
您将var func
声明为循环installer
成员的变量,但您使用fn.call(...)
。 fn
来自哪里?
您是否可以执行:installer[func].call(document)
而不是fn.call(document)
。
此外,您在安装程序对象中声明的函数不会接受任何参数,但您将document
作为参数传递。
[更新代码,将.call
添加到installer[func](document)
]