类和函数构造函数如何彼此不同

时间:2017-12-11 10:24:44

标签: javascript

根据我的理解,类是具有以下语法的蓝图:

class User {

  constructor(name) {
    this.name = name;
  }

  sayHi() {
    alert(this.name);
  }

}

let user = new User("John");
user.sayHi(); //John

用户现在具有User类的属性,但函数构造函数也是这样做的:

function User(name) {
  this.name = name;
  this.isAdmin = false;
}

let user = new User("Jack");

alert(user.name); // Jack
alert(user.isAdmin); // false

我知道类有静态,超级,扩展等等。它们有什么不同?(除静态等之外)

1 个答案:

答案 0 :(得分:3)

  

类和函数构造函数如何彼此不同

他们不是。

From MDN

  

ECMAScript 2015中引入的JavaScript类主要是   JavaScript现有的基于原型的语法糖   遗产。类语法不会引入新的面向对象   继承模型到JavaScript。 JavaScript类提供"语法   糖"创建对象并处理继承。