• ES6类与模块


    class Animal {
        // 构造方法,实例化的时候会被调用,如果不指定,那么会有一个不带参数的默认构造函数
        constructor(name, color) {
            this.name = name;
            this.color = color;
        }
    
        // toString 是原型对象上的属性
        toString() {
            console.log('name: ' + this.name + ',color: ' + this.color);
        }
    }
    
    var animal = new Animal('dog', 'white');
    animal.toString(); // name: dog,color: white
    
    console.log(animal.hasOwnProperty('name')); // true
    console.log(animal.hasOwnProperty('toString')); //false
    console.log(animal.__proto__.hasOwnProperty('toString')); //true
    
    class Cat extends Animal {
        constructor(action) {
            // 子类必须要在constructor中指定super方法,否则在新建实例的时候会报错
            super('cat', 'white');
            this.action = action;
        }
        toString() {
            super.toString();
        }
    }
    
    var cat = new Cat('catch');
    cat.toString();
    console.log(cat instanceof Cat); // true
    console.log(cat instanceof Animal); // true

    类的 prototype 属性和 __proto__ 属性

    class Animal {
        // 构造方法,实例化的时候会被调用,如果不指定,那么会有一个不带参数的默认构造函数
        constructor(name, color) {
            this.name = name;
            this.color = color;
        }
    
        // toString 是原型对象上的属性
        toString() {
            console.log('name: ' + this.name + ',color: ' + this.color);
        }
    }
    
    
    class Cat extends Animal {
        constructor(action) {
            // 子类必须要在constructor中指定super方法,否则在新建实例的时候会报错
            super('cat', 'white');
            this.action = action;
        }
        toString() {
            super.toString();
        }
    }
    
    var cat = new Cat('catch');
    console.log(Cat.__proto__ === Animal); // true
    console.log(Cat.prototype.__proto__ == Animal.prototype); // true
    class Cat {}
    
    console.log(Cat.__proto__ === Function.prototype); // true
    console.log(Cat.prototype.__proto__ === Object.prototype); // true
  • 相关阅读:
    Python进阶03 模块
    Python进阶02 文本文件的输入输出
    Python进阶01 词典
    Python基础10 反过头来看看
    Python基础09 面向对象的进一步拓展
    Python基础08 面向对象的基本概念
    Python基础07 函数
    Vuex源码分析(转)
    Vue2.x双向数据绑定
    Angular2的双向数据绑定
  • 原文地址:https://www.cnblogs.com/lqcdsns/p/6128130.html
Copyright © 2020-2023  润新知