如何在 JSON 对象上使用 foreach 调用 javascript 函数?
我的问题很容易理解。我有一个 JSON 对象(请参阅代码),我将按照出现的顺序自动调用该对象的所有函数。
。
var installer = {
a : function() {
...
}
b : function() {
...
}
};
for(var func in installer) {
fn.call(document);
};
您知道为什么前面的代码不起作用吗?抱歉,我是 javascript 的初学者。
提前致谢 !
问候。
My problem is pretty easy to understand. I have a JSON object (see code) and I will automatically call all functions of this object in the order that those appears.
.
var installer = {
a : function() {
...
}
b : function() {
...
}
};
for(var func in installer) {
fn.call(document);
};
Have you any idea why the previous code doesn't work ? I'm sorry, I'm a beginner in javascript.
Thanks in advance !
Regards.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您没有名为
fn
的变量,并且函数定义末尾也缺少逗号。此外,您的函数不会按顺序调用,因为 JavaScript 会任意排序您的对象属性。您可能需要考虑使用数组,或者像我在下面所做的那样,指定一个确定顺序的数组。
You don't have a variable called
fn
, and you are also missing commas at the end of your function definitions.Additionally, your functions will not be called in order because JavaScript orders your object properties arbitrarily. You may want to consider using an array or, as I have done below, specify an array that determines the order.
您将
var func
声明为变量来循环installer
的成员,但您使用fn.call(...)
。fn
从哪里来?您应该能够执行以下操作:
installer[func].call(document)
而不是fn.call(document)
。此外,在安装程序对象中声明的函数不接受任何参数,但您将
document
作为参数传递。[更新了代码以将缺少的
.call
添加到installer[func](document)
]You declare
var func
as the variable to loop through the members ofinstaller
, yet you usefn.call(...)
. Where didfn
come from?Should you be able to do:
installer[func].call(document)
instead offn.call(document)
.Also your functions declared in the installer object don't take any arguments, yet you're passing
document
as an argument.[updated code to add missing
.call
toinstaller[func](document)
]