面向对象
面向对象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 = 35
p3.info()
console.log(Person.prototype) //{}
console.log(p1.__proto__) //{}
面向对象,继承
继承(关键字extends):
只支持单继承,不支持多继承,可多层继承。
类与类之间,存在相同(共性)的内容js定义对象,并满足子类时父类中的一种,可以考虑使用继承,用来优化代码。
案例代码
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 {}
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: wxii2p22
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。