Javascript ES6类属性赋值

时间:2018-04-23 14:09:51

标签: javascript oop es6-class

今天我看到了一个新的语法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);

除了第二种语法不是动态的(第五种语言现在是硬编码的)之外,第一种和第二种语法之间是否存在差异?第二种语法是在第一种语法下转换的,还是它们具有不同的特征?

此主题的一个很好的来源将不胜感激,因为我找不到关于这个特定主题的任何内容。

1 个答案:

答案 0 :(得分:2)

第二个还没有有效的ES,但是有一个提案可以在将来使用。如果你今天使用像Babel这样的转换器,那么第二个将被转换为第一个,所以是的,它们是相同的。