一、面向?qū)ο?/h3>
1、面向?qū)ο?/p>
(1)是一種開發(fā)思想,并不是具體的一種技術(shù)
(2)一切事物均為對(duì)象,在項(xiàng)目中主要是對(duì)象的分工協(xié)作
2、對(duì)象的特征
(1)對(duì)象是屬性和行為的結(jié)合體
(2)屬性:體現(xiàn)對(duì)象的靜態(tài)特征、
(3)行為:體現(xiàn)對(duì)象的動(dòng)態(tài)特征(具體體現(xiàn)為函數(shù)/方法)
3、面向?qū)ο蟮娜筇卣?/strong>
(1)封裝性:對(duì)象時(shí)屬性和行為的封裝體
(2)繼承性:在基類(父類)中已經(jīng)定義的屬性或行為,子類可以繼承使用
(3)多態(tài)性:同一個(gè)信息傳遞給不同的對(duì)象呈現(xiàn)的效果也是不同的
二、ES6中的類和對(duì)象
1、類:在ES6中引入類的概念,使用class關(guān)鍵字進(jìn)行定義
class 類名{
? ? ? ? 屬性
? ? ? ? 方法
}
2、ES6中類和對(duì)象的關(guān)系
(1)類是對(duì)象的抽象:類抽取了對(duì)象的公共部分
(2)對(duì)象是類的實(shí)例化:對(duì)象是類的具體實(shí)例
3、ES6中類的構(gòu)造函數(shù)
使用constructor作為類的構(gòu)造函數(shù),用于初始化對(duì)象。在定義類的時(shí)候若沒有顯式的定義constructor,js會(huì)自動(dòng)生成一個(gè)無(wú)參的構(gòu)造函數(shù)(constructor(){})?
class Student{
constructor(id,name,age,sex){ //constructor用來(lái)初始化對(duì)象的屬性
this.id = id,
this.name = name,
this.age = age,
this.sex = sex
}
show(){
console.log(`學(xué)號(hào):${this.id} 姓名:${this.name} 年齡:${this.age} 性別:${this.sex}`);
}
}
let stu1 = new Student('001','小王',20,'男');
console.log(stu1);
stu1.show();
?
?注:通過(guò)類創(chuàng)建對(duì)象,new 類名([參數(shù)])
(1)創(chuàng)建對(duì)象時(shí)不能顯式調(diào)用constructor,在new 類名()創(chuàng)建對(duì)象時(shí),默認(rèn)調(diào)用了constructor
(2)在定義類時(shí)若沒有寫constructor,則js會(huì)自動(dòng)生成無(wú)參的constructor
三、ES6中類的繼承
1、基類:被繼承的類,也可稱為父類或超類
2、子類:由基類派生的類,又稱為派生類
3、繼承的用法:通過(guò)extends關(guān)鍵字實(shí)現(xiàn)
class 父類名{
? ? ? ? 構(gòu)造方法
? ? ? ? 普通方法
}
class 子類名?extends 父類名{
? ? ? ? 構(gòu)造方法
? ? ? ? 普通方法
}
4、super關(guān)鍵字:代表是父類,在類的繼承過(guò)程中訪問父類的構(gòu)造函數(shù)、普通函數(shù)
class Father{
constructor(name,sex){
this.name= name,
this.sex = sex
}
display(){
console.log(`姓名:${this.name} 性別:${this.sex}`);
}
}
class Son extends Father{
constructor(name,sex,address,phone){
super(name,sex),
this.address = address,
this.phone = phone
}
show(){
console.log(`姓名:${this.name} 性別:${this.sex} 地址:${this.address} 電話:${this.phone}`);
}
}
let son1 = new Son('小黑','男','西安','13198302930')
son1.show();
5、子類的普通方法與父類的普通方法同名時(shí),子類方法覆蓋父類的方法
類中的普通方法又稱為實(shí)例方法或成員方法文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-705853.html
class Animal{
eat(food){
console.log(`${food}`);
}
sleep(){
console.log('在睡覺');
}
}
class Rabbit extends Animal{
eat(){
super.eat('兔子吃草')
}
}
class Tiger extends Animal{
eat(){
super.eat('老虎吃肉')
}
}
let rabbit = new Rabbit()
rabbit.eat();
rabbit.sleep();
let tiger = new Tiger();
tiger.eat();
tiger.sleep();
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-705853.html
到了這里,關(guān)于ES6的面向?qū)ο缶幊桃约癊S6中的類和對(duì)象的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!