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