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