日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

class 类

發(fā)布時(shí)間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 class 类 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【基礎(chǔ)認(rèn)知】

1、構(gòu)造器中的this指向——類的實(shí)例對(duì)象

2、類中的構(gòu)造器不是必須寫(xiě)的,要對(duì)實(shí)例進(jìn)行一些初始化的操作,如添加指定屬性時(shí)才寫(xiě)。

3、如果A類繼承了B類,且A類中寫(xiě)了構(gòu)造器,那么A類構(gòu)造器中的super時(shí)必須要調(diào)用的。

4、類中鎖定的方法,都是放在了類的原型對(duì)象上,供實(shí)例去使用

class類的基礎(chǔ)使用

(靜態(tài)屬性,只能構(gòu)造函數(shù)訪問(wèn))

(公有屬性,寫(xiě)在構(gòu)造函數(shù).prototype)

? (實(shí)例屬性,定義在實(shí)例對(duì)象this上的屬性)

// 手機(jī)// 實(shí)例成員只能通過(guò)實(shí)例化對(duì)象來(lái)訪問(wèn)// function Phone(brand, price) {// this.brand = brand// this.price = price// }// 添加方法// Phone.prototype.call = function () {// console.log('我可以打電話!!')// }// 實(shí)例化對(duì)象// let Huawei = new Phone('華為', 5999);// Huawei.call();// console.log(Huawei);class Phone {// 構(gòu)造方法 名字不能修改constructor(brand, prive) {this.brand = brand;this.price = prive;}// 方法必須使用該語(yǔ)法,不能使用ES5的對(duì)象完整形式call() {console.log('我可以打電話!!!')}}let onePlus = new Phone('1+', 1999)onePlus.call()console.log(onePlus)

class靜態(tài)成員

function Phone() {}// 靜態(tài)成員,屬于類不屬于實(shí)例對(duì)象// 靜態(tài)成員只能通過(guò)構(gòu)造函數(shù)來(lái)訪問(wèn)Phone.name = '手機(jī)'Phone.change = function () {console.log('我可以改變世界')}Phone.prototype.size = '5.5inch'let nokia = new Phone()console.log(nokia.size)//5.5inchconsole.log(nokia.name)// undefinednokia.change()// 報(bào)錯(cuò)說(shuō)不是一個(gè)函數(shù)class Phone1 {// 靜態(tài)屬性static name = '手機(jī)';static change() {console.log('我可以改變世界')}}let aaa = new Phone1();console.log(Phone1.name)//手機(jī)console.log(aaa.name)// undefined

構(gòu)造函數(shù)繼承

// 手機(jī)function Phone(brand, price) {this.brand = brandthis.price = price}Phone.prototype.call = function () {console.log('我可以打電話')}// 智能手機(jī)function SmartPhone(brand, price, color, size) {Phone.call(this, brand, price);this.color = colorthis.size = size}// 設(shè)置子集構(gòu)造函數(shù)的原型SmartPhone.prototype = new Phone;SmartPhone.prototype.constructor = SmartPhone;// 聲明子類的方法SmartPhone.prototype.photo = function () {console.log('我可以拍照')}SmartPhone.prototype.playGame = function () {console.log('我可以玩游戲')}const chuizi = new SmartPhone('錘子', 2499, '黑色', '5.5inch');console.log(chuizi)chuizi.photo()chuizi.playGame()

類的函數(shù)繼承

// 手機(jī)class Phone {constructor(brand, price) {this.brand = brand;this.price = price;}call() {console.log('我可以電話')}}// 智能手機(jī)class SmartPhone extends Phone {constructor(brand, price, color, size) {//super之前調(diào)用this會(huì)報(bào)錯(cuò)super(brand, price);this.color = color;this.size = size;}photo() {console.log('我可以拍照')}palyGame() {console.log('我可以玩游戲')}}let chuizi = new SmartPhone('錘子', 2999, '黑色', '5.5inch')console.log(chuizi)chuizi.call() //容易出錯(cuò)的地方 忘記寫(xiě)extends, 構(gòu)造函數(shù)中的形參, super()

super 這個(gè)關(guān)鍵字,既可以當(dāng)作函數(shù)使用,也可以當(dāng)作對(duì)象使用。在這兩種情況下,它的用法完全不同。

函數(shù):
子類B的構(gòu)造函數(shù)之中的super(),代表調(diào)用父類的構(gòu)造函數(shù)。 super雖然代表了父類A的構(gòu)造函數(shù),但是返回的是子類B的實(shí)例,即super內(nèi)部的this指的是B,因此super()在這里相當(dāng)于A.prototype.constructor.call(this)。
對(duì)象:
在普通方法中,指向父類的原型對(duì)象;在靜態(tài)方法中,指向父類。由于super指向父類的原型對(duì)象,所以定義在父類實(shí)例上的方法或?qū)傩?#xff0c;是無(wú)法通過(guò)super調(diào)用的。
class 作為構(gòu)造函數(shù)的語(yǔ)法糖,同時(shí)有 prototype屬性和__proto__屬性,因此同時(shí)存在兩條繼承鏈。

類的get 和set

// get 和 setclass Phone {get price() {console.log('價(jià)格屬性被讀取了');return 'iloveyou'}set prive(newVal) {// 必須要設(shè)置一個(gè)參數(shù),不然報(bào)錯(cuò)console.log('價(jià)格屬性被修改了')}}// 實(shí)例化對(duì)象let s = new Phone();// console.log(s.price)s.prive = 'free'// 類似于vue的watch和computed

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的class 类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。