为什么这不起作用?在循环中调用属于对象的函数

时间:2009-03-20 19:26:08

标签: javascript loops object

在我的代码中,jsc.tools是一个包含对象的对象。每个子对象都包含一个init()和run()方法。

我在启动时运行以下代码:

for(tool in jsc.tools) {
    tool.init();
}

这给了我错误“tool.init不是函数”。

工具声明的样本是:

jsc.tools.sometool = {};
jsc.tools.sometool.run = function() {
    // Apply tool
}
jsc.tools.sometool.init = function() {
    // Set bits of data needed for the tool to run
}

2 个答案:

答案 0 :(得分:5)

javascript中的for in x运算符为您提供了对象属性的名称。尝试:

for(tool in jsc.tools) {
    jsc.tools[tool].init();
}

答案 1 :(得分:0)

你需要使用

for(tool in jsc.tools) {
    jsc.tools[tool].init();
}