【问题标题】:How can I run the same method in all instances of a class?如何在类的所有实例中运行相同的方法?
【发布时间】:2020-08-31 19:02:37
【问题描述】:

我有一个构造对象的类。我可以在不知道对象本身名称的情况下在所有对象实例中运行方法吗?

class Person{

 constructor (_a){
 this.a = _a;
 }

 sayfood(){
 console.log(this.a);
 }

}

let person1 = new Person("cheese");
let person2 = new Person("milk");

我目前最好的解决方案是像这样遍历实例:

for (var i = 1; i < 3; i++) {
  eval("person" + i).sayfood();
}

它有效,但我想有更好的方法。我曾尝试将新对象实例作为数组元素放置,然后使用 foreach 遍历它们,但无法正常工作。

JSFiddle

【问题讨论】:

    标签: javascript class object methods


    【解决方案1】:

    我曾尝试将新对象实例作为数组元素放置,然后使用 foreach 遍历它们,但无法正常工作。

    这确实是一个更好的方法。这就是你将如何使用forEach 来实现这一点:

    class Person{
     constructor (_a){
      this.a = _a;
     }
    
     sayFood(){
      console.log(this.a);
     }
    }
    
    const person1 = new Person("cheese");
    const person2 = new Person("milk");
    
    const persons = [person1, person2]
    
    persons.forEach(person => person.sayFood())

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 2014-03-10
      • 2022-11-18
      相关资源
      最近更新 更多