JavaScript 动态方法名称

示例

在命名方法时也可以评估表达式,类似于使用可以访问对象属性的方法[]。这对于具有动态属性名称很有用,但是通常与符号结合使用。

let METADATA = Symbol('metadata');

class Car {  constructor(make, model) {   this.make= make;   this.model= model;
  }
  
  // 使用符号的例子
  [METADATA]() {
    return {
      make: this.make,
      model: this.model
    };
  }

  // 您还可以使用任何JavaScript表达式

  // this one is just a string, and could also be defined with simply add()
  ["add"](a, b) {
    return a + b;
  }

  // 这是动态评估的
  [1 + 2]() {
    return "three";
  }
}

let MazdaMPV = new Car("Mazda", "MPV");
MazdaMPV.add(4, 5); // 9
MazdaMPV[3](); // "three"
MazdaMPV[METADATA](); // { make: "Mazda", model: "MPV" }