ES6 类 class 继承 extends 构造函数 constructor()


class Star {
    // constructor 函数,可以接受传递过来的参数,同时返回实例对象
    // constructor 函数,只要 new 生成实例时,就会自动调用这个函数,如果不写类也会自动生成
    constructor(uname) {
        this.uname = uname;
    }
    // 创建方法
    print(content) {
        return content + this.uname;
    }
};
var zs = new Star('zs');
zs.print('hello world'); // 调用

constructor 构造函数

constructor() 是类的构造函数(默认方法),用于传递参数,返回实例对象;通过new命令生成对象实例时,自动调用该方法,如果没有显示定义,类内部会自动创建一个 constructor()

继承

class Father {
    constructor(x, y) {
        this.x = x;
        this.y = y;
    }
    sum() {
        console.log(this.x + this.y);
        // console.log(1 + 2);
    }
}
class Son extends Father {
    // 子类中没有 constructor 构造方法时,并且父类中的方法没有涉及到父类中的 constructor 子类是可以直接通过 extends 来继承父类身上的方法的
    constructor(uname) { 
        // 如果运用到了父类中的构造函数 constructor 子类想再次调用则需要 子类也声明 constructor 构造函数并且通过 super() 方法传递想要的参数,进行计算
        super(11, 22); // super() 方法必须写到子类构造方法中的最前面,高于自身的this
        this.uname = uname;
    }
    // 如果子类中存在于父类相同的方法,调用时就近原则
    sum() {
        console.log(2 + 2);
        // 也可以通过super()方法直接调用 父类中的sum方法
        super.sum();
    }
    // 子类可以拓展自己的方法
    print() {
        console.log(this.uname);
    }
}
var son = new Son();
1. son.sum(); // 3
2. son.sum(); // 33
3. son.sum(); // 4 33


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM