伴隨著ES6的發(fā)布,javascript中正式的引入了class(類),讓js中的面向?qū)ο蟾拥囊?guī)范標(biāo)準(zhǔn),同時(shí)給想跨語(yǔ)言發(fā)展的前端同學(xué)們提供了更高的臺(tái)階,因?yàn)楹蠖苏Z(yǔ)言的OOP也是class,語(yǔ)法基本一致呀。驚不驚喜?
>
今天我們就來(lái)撩一把class中的static關(guān)鍵字,咳咳...拿出你的小馬扎,和筆記本開始了.....
前情回顧
想必各位前端的小伙伴們都知道,一般來(lái)書在class中只有屬性和方法.都可以被實(shí)例化的對(duì)象進(jìn)行調(diào)用,比如這樣的。
結(jié)果
當(dāng)我們?cè)俅温暶饕粋€(gè)使用static修飾的方法,使用實(shí)例化對(duì)象之后,你會(huì)發(fā)現(xiàn)
代碼竟然報(bào)錯(cuò)了!!!這個(gè)方法不能被實(shí)例化后的對(duì)象調(diào)用
不要著急,來(lái)來(lái)讓我們一起揭開static神秘的面紗
敲黑板了,凡是被static修飾的屬性和方法都是靜態(tài)方法和屬性,只能被類名調(diào)用,不能被實(shí)例化對(duì)象調(diào)用。同時(shí)也不能被子類繼承,換句話說(shuō)它屬于當(dāng)前這個(gè)類的。
基本使用
使用static修飾屬性和方法
結(jié)果
在普通的方法中使用,靜態(tài)屬性和靜態(tài)方法,也必修使用類名進(jìn)行調(diào)用
也可以在普通方法中修改靜態(tài)屬性的值,使用類名直接調(diào)用即可
能被繼承
extends的主要用于子類繼承父類,繼承之后子類擁有父類的的所有方法包括,靜態(tài)方法和屬性除外.
注意點(diǎn)
如果靜態(tài)方法包含this關(guān)鍵字,這個(gè)this指的是類,而不是實(shí)例。
分析:
上面代碼中,靜態(tài)方法love調(diào)用了this.say(),這里的this指的是A類,而不是A的實(shí)例,等同于調(diào)用A.say()。
靜態(tài)方法和普通方法是可以重名的,因?yàn)樗麄儾粚儆谕粋€(gè)對(duì)象,像這樣!
以上是對(duì)ES6中static關(guān)鍵字使用的具體介紹,更多關(guān)于“前端培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽。