ES6-введение класса

ES6-введение класса

ES6 обеспечивает способ написания, близкий к традиционным языкам, и вводит концепцию класса как шаблона для объектов.С помощью ключевого слова class написание прототипов объектов может быть сделано более ясным и более похожим на синтаксис объектно-ориентированного программирования.

  1. Класс объявляет класс, а конструктор определяет инициализацию конструктора.
		class Phone1 {
            constructor(brand, price) {
                this.brand = brand;
                this.price = price;
            }
            call() {
                console.log('我能打电话');
            }
        }
        let onePlus = new Phone1('1+', 1999);
        console.log(onePlus);

Вот разница с конструктором

function Star(name,age,gender){
	this.name=name;
	this.age=age;
	this.gender=gender;
}
Star.prototype.talent=function(){
	console.log('我会演小品');
}
let bp1=new Star('jisoo',25,'女');
console.log(bp1);
Star.talent();
  1. extends наследует родительский класс, super вызывает родительский метод построения
		class Phone {
            constructor(brand, price) {
                this.brand = brand;
                this.price = price;
            }
            call() {
                console.log('我能拍照');
            }
        }
        class SmartPhone extends Phone {//Phone为要继承的父类
            constructor(brand, price, color, size) {
                super(brand, price);//super里面的属性为继承父类的属性,新的属性在外面补充
                this.color = color;
                this.size = size;
            }
            photo() {
                console.log('我能拍照');
            }
        }
        let xiaomi = new SmartPhone('xiaomi', 1999, 'red', 15.6);
        console.log(xiaomi);
        xiaomi.call();
  1. static определяет статические методы и свойства
		/* class静态成员 */
        class Star {
            //静态属性
            static name = 'jisoo';
            static habit = function() {
                console.log("That's a pity");
            }
        }
        let jisoo = new Star();
        console.log(Star.name); //jisoo
        console.log(jisoo.name); //undefined
  1. Метод родительского класса можно переопределить
		class Father {
            constructor(name, age) {
                this.name = name;
                this.age = age;
            }
            money() {
                console.log('我能赚钱');
            }
        }
        class Son extends Father {
            constructor(name, age, gender) {
                super(name, age);
                this.gender = gender;
            }
            money() {
                console.log('我也能赚钱');
            }
        }
        let son = new Son('jisoo', 25, '女');
        console.log(son);
        son.money();

рекомендация

отblog.csdn.net/Angela_Connie/article/details/114239023
рекомендация