在 for 循环中调用对象的函数 - JavaScript

Invoking a function of an object inside a for loop - JavaScript

我有一个名为 foo 的对象:

function Foo(){
  this.conceal = function(){ ... };
};

和一个名为 toggleView 的方法,它遍历 foo 的集合并在每个实例上调用 conceal() 方法:

function toggleView(foos){
  for(a in foos){
    foos[a].conceal();
  }
}

当然还有foos[a].conceal(); returns:隐藏不是函数

你应该在某个时候调用函数 Foo 以便隐藏变成 "function"。

function Foo(){
  this.conceal = function( item ) { 
    console.log(item); // "a" "b" "c"
  };
};

function toggleView(foos) {
  var myFoo = new Foo();      // Create new instance (here or outside this fn)
  for(a in foos){
    myFoo.conceal(foos[a]);   // use your instance and pass as items arg. reference
  }
}

toggleView(["a","b","c"]);

示例使 toggleView 成为 Foo

原型

function Foo(){
  this.conceal = function( item ) { 
    console.log(item); // "a" "b" "c"
  };
}

Foo.prototype.toggleView = function(foos) {
  for(a in foos){
    this.conceal(foos[a]);        // invoke .conceal Method using `this` reference
  }
}

var myFoo = new Foo();            // Create new instance
myFoo.toggleView(["a","b","c"]);