SOURCE


// 请注意,类不能继承常规对象(不可构造的)。如果要继承常规对象,可以改用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 命令行工具 X clear

                    
>
console