摘要:函數(shù)中使用關(guān)鍵詞定義構(gòu)造函數(shù)的的方法和屬性上面代碼首先用定義了一個(gè)類,可以看到里面有一個(gè)方法,這就是構(gòu)造方法,而關(guān)鍵字則代表實(shí)例對(duì)象。這是因?yàn)樽宇悰](méi)有自己的對(duì)象,而是繼承父類的對(duì)象,然后對(duì)其進(jìn)行加工。
ES6 classes(類)
Ecmascript5方法我們?cè)诰幊踢^(guò)程中常常用到面向?qū)ο?,?duì)象創(chuàng)建實(shí)例這個(gè)方法,但是es6中給我封裝了一個(gè)class類
下邊給大家介紹一下!
//萬(wàn)事萬(wàn)物皆對(duì)象 //1.類是由對(duì)象(抽象)泛化出來(lái)的 //2.對(duì)象是由類創(chuàng)建出來(lái)的 //3.對(duì)象叫類的具體實(shí)例 function Person(name,age){ this.name=name, this.age=age } Person.prototype.run=function(){ console.log(this.name+" 我會(huì)跑") } var weiwei=new Person("weiwei",21); console.log(weiwei) function SuperMan(name,age,sex,body){ //Person.apply(this,arguments);//繼承了父類的屬性 Person.call(this,name,age,sex)//apply 傳進(jìn)來(lái)的是數(shù)組集合,call傳進(jìn)來(lái)的是數(shù)組 //自己的屬性 this.body=body; } SuperMan.prototype=Object.create(Person.prototype);//繼承了父類的方法 //自己的方法 多態(tài) SuperMan.prototype.fly=function(){ console.log("我會(huì)飛"); } var chaoren=new SuperMan("大剛",24,"男","大")es6方法
ES6 中有 class 語(yǔ)法。值得注意是,這里的 class 不是新的對(duì)象繼承模型,它只是原型鏈的語(yǔ)法糖表現(xiàn)形式。
//1.es6提供了類來(lái)創(chuàng)建面向?qū)ο缶幊? class Student{ constructor(name,age){ this.name=name; this.age=age; } run(){ console.log(this.name+" 跑啊跑") } } class SuperMan extends Student{ constructor(name,age,xh){ super(name,age); //同上call this.xh=xh; } eat(obejectName){ console.log(this.name+" 喜歡吃"+obejectName) } get xm(){ return this.name } set xm(value){ //console.log(value) //設(shè)置xm屬性 this.name=value; } static shangxue(){ console.log("快快上學(xué)去"); //類的方法(只能類用),靜態(tài)方法,對(duì)象實(shí)例不能用 } } let student1 = new Student("咪咪",18); let student2 = new SuperMan("小明",21,007) student2.eat("蘋果"); //set get 方法 console.log(student2.xm) //get 調(diào)用方法不用括號(hào)(); get獲取 student2.xm="小紅" console.log(student2.xm) // student2.shangxue() SuperMan.shangxue();
函數(shù)中使用 static 關(guān)鍵詞定義構(gòu)造函數(shù)的的方法和屬性:
ES6 中有 class 語(yǔ)法。值得注意是,這里的 class 不是新的對(duì)象繼承模型,它只是原型鏈的語(yǔ)法糖表現(xiàn)形式。
函數(shù)中使用 static 關(guān)鍵詞定義構(gòu)造函數(shù)的的方法和屬性
上面代碼首先用class定義了一個(gè)“類”,可以看到里面有一個(gè)constructor方法,這就是構(gòu)造方法,而this關(guān)鍵字則代表實(shí)例對(duì)象。簡(jiǎn)單地說(shuō),constructor內(nèi)定義的方法和屬性是實(shí)例對(duì)象自己的,而constructor外定義的方法和屬性則是所有實(shí)例對(duì)象可以共享的。
Class之間可以通過(guò)extends關(guān)鍵字實(shí)現(xiàn)繼承,這比ES5的通過(guò)修改原型鏈實(shí)現(xiàn)繼承,要清晰和方便很多。上面定義了一個(gè)Cat類,該類通過(guò)extends關(guān)鍵字,繼承了Animal類的所有屬性和方法。
super關(guān)鍵字,它指代父類的實(shí)例(即父類的this對(duì)象)。子類必須在constructor方法中調(diào)用super方法,否則新建實(shí)例時(shí)會(huì)報(bào)錯(cuò)。這是因?yàn)樽宇悰](méi)有自己的this對(duì)象,而是繼承父類的this對(duì)象,然后對(duì)其進(jìn)行加工。如果不調(diào)用super方法,子類就得不到this對(duì)象。
關(guān)鍵字 class, extends, super
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84092.html
es6知識(shí)總結(jié)--3 上午發(fā)表了一個(gè)總結(jié)覺(jué)得還是把自己的了解做成一個(gè)小系列吧,明天把那個(gè)總結(jié)一下! es6對(duì)咱們es3,es5的數(shù)據(jù)類型進(jìn)行了升級(jí)下邊說(shuō)新APIs!js數(shù)據(jù)類型有Number、String 、oject、Boolean、Null、Undefined六種數(shù)據(jù)類型 ! 下邊介紹 Math、Number、String 、Array、Boject的新 APIs Math Number S...
摘要:知識(shí)點(diǎn)總結(jié)一,,能重復(fù)聲明,有前置功能。淺拷貝一個(gè)數(shù)組設(shè)置原型。永遠(yuǎn)是唯一的,不可能和別的重復(fù),可以阻止對(duì)象的屬性被篡改前面不能使用操作符。和的區(qū)別鍵名可以是任何數(shù)據(jù)類型初始化的時(shí)候必須一次性指定鍵名和鍵值。 es6知識(shí)點(diǎn)總結(jié)(一) let,var,const var:能重復(fù)聲明,有前置功能。 let:有塊級(jí)作用域,沒(méi)有前置功能,不能重復(fù)聲明。 const:有塊級(jí)作用域,用來(lái)聲明常量(...
摘要:感覺(jué)對(duì)我這種沒(méi)實(shí)習(xí)沒(méi)工作的新手,雖然一些高級(jí)的功能暫時(shí)用不上,但是一些基礎(chǔ)的知識(shí)還是為平時(shí)的開發(fā)提供了巨大的便利。學(xué)習(xí)告一段落,現(xiàn)在結(jié)合平時(shí)的開發(fā),總結(jié)一些常用的知識(shí)。日常開發(fā)中,塊級(jí)作用域中使用的變量,盡量使用或者聲明。使用時(shí),進(jìn)行合并。 很早之前就學(xué)過(guò)TypeScript和ES6,后來(lái)做項(xiàng)目的時(shí)候零零散散用了些。這幾天又系統(tǒng)地把ES6的知識(shí)看了一遍。感覺(jué)對(duì)我這種沒(méi)實(shí)習(xí)沒(méi)工作的新手,...
摘要:常用知識(shí)總結(jié)之前總結(jié)了中的一些知識(shí)點(diǎn)。在年正式發(fā)布了,簡(jiǎn)稱,又稱為。作為構(gòu)造函數(shù)的語(yǔ)法糖,同時(shí)有屬性和屬性,因此同時(shí)存在兩條繼承鏈。子類的屬性,表示構(gòu)造函數(shù)的繼承,總是指向父類。 ES6常用知識(shí)總結(jié) 之前總結(jié)了es5中js的一些知識(shí)點(diǎn)。這段時(shí)間看了石川blue老師講解的es6課程,結(jié)合阮一峰老師的es6教程,隨手做了一些筆記和總結(jié)分享給大家。內(nèi)容還是es6主要的知識(shí)點(diǎn),基本沒(méi)有什么創(chuàng)新...
摘要:常用知識(shí)總結(jié)之前總結(jié)了中的一些知識(shí)點(diǎn)。在年正式發(fā)布了,簡(jiǎn)稱,又稱為。作為構(gòu)造函數(shù)的語(yǔ)法糖,同時(shí)有屬性和屬性,因此同時(shí)存在兩條繼承鏈。子類的屬性,表示構(gòu)造函數(shù)的繼承,總是指向父類。 ES6常用知識(shí)總結(jié) 之前總結(jié)了es5中js的一些知識(shí)點(diǎn)。這段時(shí)間看了石川blue老師講解的es6課程,結(jié)合阮一峰老師的es6教程,隨手做了一些筆記和總結(jié)分享給大家。內(nèi)容還是es6主要的知識(shí)點(diǎn),基本沒(méi)有什么創(chuàng)新...
閱讀 3355·2021-11-22 14:44
閱讀 2567·2019-08-30 14:10
閱讀 2638·2019-08-30 13:12
閱讀 1241·2019-08-29 18:36
閱讀 1371·2019-08-29 16:16
閱讀 3357·2019-08-26 10:33
閱讀 1793·2019-08-23 18:16
閱讀 401·2019-08-23 18:12