Javascript 为什么';这不管用吗?调用属于循环中对象的函数

Javascript 为什么';这不管用吗?调用属于循环中对象的函数,javascript,loops,object,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.ini

在我的代码中,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
}

javascript中的for in x操作符提供对象的属性名称。尝试:

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

javascript中的for in x操作符提供对象的属性名称。尝试:

for(tool in jsc.tools) {
    jsc.tools[tool].init();
}
你需要使用

for(tool in jsc.tools) {
    jsc.tools[tool].init();
}
你需要使用

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

这也抓住了我好几次。你可能认为for(x in..)会将x设置为object/array/string/whatever,但它只将x设置为key。这也吸引了我很多次。您可能认为for(x in..)会将x设置为object/array/string/whatever,但它只将x设置为键。