从javascript循环中对象内部的函数调用函数

从javascript循环中对象内部的函数调用函数,javascript,call,Javascript,Call,我有一个javascript对象,里面有一些函数,我希望我能在循环中调用它们,比如: funcs: { func1: function() { return true; }, func2: function() { return false; } } for(func in funcs) { console.log(funcs[func]()); console.log(funcs[func].call()); } 两者都有效。但是你的目标

我有一个javascript对象,里面有一些函数,我希望我能在循环中调用它们,比如:

funcs: {
  func1: function() {
      return true;
  },
  func2: function() {
      return false;
  }
}

for(func in funcs) {
   console.log(funcs[func]());
   console.log(funcs[func].call());
}

两者都有效。但是你的目标声明是不正确的。它是
var object={/*something*/}

var funcs = {
  func1: function() {
      return true;
  },
  func2: function() {
      return false;
  }
};

for(func in funcs) {
   console.log(funcs[func]());
   console.log(funcs[func].call());
}
输出

true
true
false
false

您的愿望得到了满足(即代码可以工作),我对其中的哪一个感到好奇->调用()或()都可以工作。不过我不知道有什么区别。它们都可以工作(改为
var funcs={…}
)。第二个版本将默认全局对象的上下文,除非对象实例作为第一个参数传入:
funcs[func]。调用(funcs)
这里您可以使用
for(func in obj.funcs){}
循环什么是
obj
?这里没有名为
obj
的对象或变量。我在回答一条显然已被删除的评论。