摘要:中新增了這個(gè)語(yǔ)法糖。在方法前加上關(guān)鍵字。這樣讓人很容易忽略這個(gè)靜態(tài)屬性,也不符合相關(guān)代碼應(yīng)該放在一起的代碼組織原則。另外,新寫(xiě)法是顯式聲明,而不是賦值處理,語(yǔ)義更好。
ES6中新增了class這個(gè)語(yǔ)法糖。此class并非java中的class,ES6中的class寫(xiě)法只是讓對(duì)象原型的寫(xiě)法更加清晰、更像面向?qū)ο缶幊痰恼Z(yǔ)法而已。其中有static關(guān)鍵字。
static關(guān)鍵字多用于靜態(tài)方法和靜態(tài)屬性。
靜態(tài)方法:
不同于普通在類(lèi)中定義的會(huì)被實(shí)例繼承的方法。在方法前加上static關(guān)鍵字。就表示該方法不會(huì)被實(shí)例繼承,而是直接通過(guò)類(lèi)來(lái)調(diào)用,這就稱(chēng)為“靜態(tài)方法”。 class Foo { static classMethod() { return "hello"; } } Foo.classMethod() // "hello" var foo = new Foo(); foo.classMethod() // TypeError: foo.classMethod is not a function
Foo類(lèi)的classMethod方法前有static關(guān)鍵字,表明該方法是一個(gè)靜態(tài)方法,可以直接在Foo類(lèi)上調(diào)用(Foo.classMethod()),而不是在Foo類(lèi)的實(shí)例上調(diào)用。如果在實(shí)例上調(diào)用靜態(tài)方法,會(huì)拋出一個(gè)錯(cuò)誤,表示不存在該方法。
靜態(tài)屬性:
靜態(tài)屬性指的是 Class 本身的屬性,即Class.propName,而不是定義在實(shí)例對(duì)象(this)上的屬性。
// 老寫(xiě)法 class Foo { // ... } Foo.prop = 1; // 新寫(xiě)法 class Foo { static prop = 1; }
上面代碼中,老寫(xiě)法的靜態(tài)屬性定義在類(lèi)的外部。整個(gè)類(lèi)生成以后,再生成靜態(tài)屬性。這樣讓人很容易忽略這個(gè)靜態(tài)屬性,也不符合相關(guān)代碼應(yīng)該放在一起的代碼組織原則。另外,新寫(xiě)法是顯式聲明(declarative),而不是賦值處理,語(yǔ)義更好。
總結(jié)參考于:阮一峰ES6http://es6.ruanyifeng.com/#do...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/109666.html
摘要:前段時(shí)間項(xiàng)目組計(jì)劃快速開(kāi)發(fā)一個(gè)新的項(xiàng)目,開(kāi)發(fā)那邊提供殼子和部分系統(tǒng)級(jí)功能,所有的頁(yè)面由完成,考慮兼容性安卓及。后面會(huì)繼續(xù)優(yōu)化,先把目前的基本部署方式記錄下來(lái)。 前段時(shí)間項(xiàng)目組計(jì)劃快速開(kāi)發(fā)一個(gè)新的App項(xiàng)目,App開(kāi)發(fā)那邊提供殼子和部分系統(tǒng)級(jí)功能,所有的頁(yè)面由h5完成,考慮兼容性安卓4.1及ios7.1。全新的項(xiàng)目,沒(méi)有歷史包袱,就嘗試了新的開(kāi)發(fā)模式,采用了webpack + vue-c...
摘要:構(gòu)造函數(shù)定義偵探類(lèi)作為例子。里的既是類(lèi)的定義,也是構(gòu)造函數(shù)。在構(gòu)造函數(shù)中定義的實(shí)例方法和屬性在每一個(gè)實(shí)例中都會(huì)保留一份,而在原型中定義的實(shí)例方法和屬性是全部實(shí)例只有一份。 無(wú)論React還是RN都已經(jīng)邁入了ES6的時(shí)代,甚至憑借Babel的支持都進(jìn)入了ES7。ES6內(nèi)容很多,本文主要講解類(lèi)相關(guān)的內(nèi)容。 構(gòu)造函數(shù) 定義偵探類(lèi)作為例子。 ES5的類(lèi)是如何定義的。 function ES5D...
摘要:不同于其他面向?qū)ο笳Z(yǔ)言,以前的中中沒(méi)有類(lèi)的概念,主要是通過(guò)原型的方式來(lái)實(shí)現(xiàn)繼承,中引入了原型鏈,并且將原型鏈用來(lái)實(shí)現(xiàn)繼承,其核心是利用原型使得一個(gè)對(duì)象繼承另一個(gè)對(duì)象的方法和屬性,中原型繼承的關(guān)鍵是將一個(gè)實(shí)例的原型對(duì)象指向另一個(gè)實(shí)例,因此前一 不同于其他面向?qū)ο笳Z(yǔ)言,ES6以前的JavaScript中中沒(méi)有class類(lèi)的概念,主要是通過(guò)原型的方式來(lái)實(shí)現(xiàn)繼承,JavaScript中引入了原...
摘要:年,很多人已經(jīng)開(kāi)始接觸環(huán)境,并且早已經(jīng)用在了生產(chǎn)當(dāng)中。我們發(fā)現(xiàn),關(guān)鍵字會(huì)被編譯成構(gòu)造函數(shù),于是我們便可以通過(guò)來(lái)實(shí)現(xiàn)實(shí)例的生成。下一篇文章我會(huì)繼續(xù)介紹如何處理子類(lèi)的并會(huì)通過(guò)一段函數(shù)橋梁,使得環(huán)境下也能夠繼承定義的。 2017年,很多人已經(jīng)開(kāi)始接觸ES6環(huán)境,并且早已經(jīng)用在了生產(chǎn)當(dāng)中。我們知道ES6在大部分瀏覽器還是跑不通的,因此我們使用了偉大的Babel來(lái)進(jìn)行編譯。很多人可能沒(méi)有關(guān)心過(guò),...
摘要:靜態(tài)屬性靜態(tài)方法目前支持靜態(tài)方法表示,類(lèi)屬性及靜態(tài)屬性目前作為提案還未正式成為標(biāo)準(zhǔn)。在中,抽象類(lèi)不能用來(lái)實(shí)例化對(duì)象,主要做為其它派生類(lèi)的基類(lèi)使用。不同于接口,抽象類(lèi)可以包含成員的實(shí)現(xiàn)細(xì)節(jié)。中也是這樣規(guī)定的抽象類(lèi)不允許直接被實(shí)例化。 嘗試重寫(xiě) 在此之前,通過(guò)《JavaScript => TypeScript 入門(mén)》已經(jīng)掌握了類(lèi)型聲明的寫(xiě)法。原以為憑著那一條無(wú)往不利的規(guī)則,就可以開(kāi)開(kāi)心心的...
閱讀 1970·2021-09-04 16:45
閱讀 758·2019-08-30 15:44
閱讀 902·2019-08-30 13:07
閱讀 462·2019-08-29 16:06
閱讀 1386·2019-08-29 13:43
閱讀 1278·2019-08-26 17:00
閱讀 1532·2019-08-26 13:51
閱讀 2301·2019-08-26 11:48