1.简介(详情参考)
class是构造函数的语法糖。
class的constructor方法内的实现,就是原来构造函数的实现。
class内的所有方法都是在prototype上的,就是原来构造函数的prototype上的实例共享方法。
class A { constructor() {} addNum() {} } Object.keys(A.prototype); // [] // 等同于 function B() {}; B.prototype = { constructor() {},addNum() {} } Object.keys(B.prototype); // ["constructor","addNum"]
??对于访问内部函数有差别:class内部定义的函数不可遍历,构造函数的可以遍历。??的Object.keys()方法。
2.constructor方法
class必须有constructor方法。如果不写,js引擎会自动添加constructor方法。
class A{} // 等于 class A{ constructor() {} // 空的方法 };
constructor方法默认返回this; 也可以自定义return
和构造函数区别: 必须有new,否则报错