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

Mac*_*cha 0 javascript loops object

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

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

for(tool in jsc.tools) {
    tool.init();
}
Run Code Online (Sandbox Code Playgroud)

这给了我错误"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
}
Run Code Online (Sandbox Code Playgroud)

Sta*_*ale 5

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

for(tool in jsc.tools) {
    jsc.tools[tool].init();
}
Run Code Online (Sandbox Code Playgroud)