龙空技术网

Javascript,面向对象(ES6),类、构造方法、继承及调用,案例

古怪今人 68

前言:

而今同学们对“js如何实现一个类怎么实例化这个类”大致比较珍视,你们都想要了解一些“js如何实现一个类怎么实例化这个类”的相关文章。那么小编同时在网摘上汇集了一些有关“js如何实现一个类怎么实例化这个类””的相关文章,希望姐妹们能喜欢,咱们快快来学习一下吧!

面向对象

面向对象,Object Oriented,软件开发方法,一种编程范式。

JavaScript类(ES6)

面向对象,关键字:class、constructor、extends、supper、static;

属性:公有属性、私有属性、静态属性;

方法(函数):构造函数(有且只能有1个)、set get方法、普通方法、静态方法。

案例代码

class Person {    name = ''    // 私有属性    _age = 0    // 构造方法    constructor(name, age = 21) {        this.name = name        this._age = age;    }    // set get    set name(name) {        this.name = name    }    get name() {        return this.name    }    set age(age) {        this._age = age    }    get age() {        return this._age    }    info() {        console.log(this.name + " | " + this._age)    }}let p1 = new Person('宋江')p1.info()let p2 = new Person('卢俊义', 34)p2.info()let p3 = new Person()p3.name = '吴用'p3.age = 35p3.info()console.log(Person.prototype) //{}console.log(p1.__proto__) //{}
面向对象,继承

继承(关键字extends):

只支持单继承,不支持多继承,可多层继承。

类与类之间,存在相同(共性)的内容,并满足子类时父类中的一种,可以考虑使用继承,用来优化代码。

案例代码

class Person {    name = ''    // 私有属性    _age = 0    // 构造方法    constructor(name, age = 21) {        this.name = name        this._age = age;    }    // set get    set name(name) {        this.name = name    }    get name() {        return this.name    }    set age(age) {        this._age = age    }    get age() {        return this._age    }    info() {        console.log(this.name + " | " + this._age)    }}class Student extends Person {    _classes = ''    constructor(name, age, school, classes = '') {        super(name, age);        this.school = school;        this._classes = classes;    }    info() {        console.log(super.name + " | " + super.age + " | " + this.school + " | " + this._classes)    }}let s1 = new Student("林冲", 24, "私塾", "小学")s1.info()console.log(Student.prototype) // Person {}console.log(s1.__proto__) // Person {}

标签: #js如何实现一个类怎么实例化这个类