今天看到一种新的语法,JS类可以赋值它们的属性,像这样:
// Syntax 1
class foo {
constructor(prop){
this.prop = prop;
}
}
// Syntax 2
class bar {
prop = 5;
}
let testBar = new foo(5);
let testFoo = new bar();
console.log(testBar.prop);
console.log(testFoo.prop);
除了第二种语法不是动态的(5 现在是硬编码的)之外,它们在第一种语法和第二种语法之间是否有任何区别?第二种语法是在幕后转换为第一种语法还是它们具有不同的特征?
如果我找不到有关此特定主题的任何内容,我们也将不胜感激。
最佳答案
第二个还不是有效的 ES,但有一个建议,以便将来可能会起作用。如果你今天使用像 Babel 这样的转译器来使用它,那么第二个将被转译为第一个,所以是的,它们是相等的。
关于Javascript ES6 类属性赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49983271/