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" }