// 请注意,类不能继承常规对象(不可构造的)。如果要继承常规对象,可以改用Object.setPrototypeOf():
// var Animal = {
// speak() {
// console.log(this.name + ' makes a noise')
// }
// }
// class Dog {
// constructor(name) {
// this.name = name;
// }
// }
// Object.setPrototypeOf(Dog.prototype,Animal);
// var d = new Dog('Mitzie')
// d.speak();
// 如果子类中定义了构造函数,那么它必须先调用 super() 才能使用 this 。
// 也可以继承传统的基于函数的“类”:
// function Animal(name) {
// this.name = name;
// }
// Animal.prototype.speak = function() {
// console.log(this.name + ' makes a noise')
// }
// class Dog extends Animal {
// speak() {
// super.speak();
// console.log(this.name + ' barks.')
// }
// }
// var d = new Dog('Mitzie');
// d.speak();
// 一、使用 extends 创建子类
// class Animal {
// constructor(name) {
// this.name = name;
// }
// speak() {
// console.log(`${this.name} makes a noise.`);
// }
// }
// class Dog extends Animal {
// constructor(name) {
// super(name); // 调用超类构建函数并传入name参数
// }
// speak() {
// console.log(`${this.name} barks`)
// }
// }
// var d = new Dog('Mitzie');
// d.speak();
console