国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

es6中類和extends的本質

URLOS / 3017人閱讀

摘要:首先有一個地方就是把指向了本身,這里有什么用呢,的時候是指向一個這樣的匿名函數。我們平時使用的和就是存在這個匿名函數里的。

理解es6的類和extends的原理,主要是先理解es5里面函數和對象間的關系(__proto__和prototype的知識)

class c { 
   constructor(){} 
   //static f() {} 
   a() {} 
} 

class d extends c{
} 

通過typeof打印我們知道,c和d本質其實還是一個函數.接下來我們看最開始的地方c.prototype。

從圖中我們可以看出,我們在class c里面定義的東西其實都是定義在c的prototype里的,然后我們再看一下d.__proto__。

從圖中我們可以知道,d的原型proto是等于函數c的,繼續,我們看看d的prototype屬性

??????從圖中我們可以看到d的prototype指向一個c生成的對象。并且我們可以通過打印看到雖然d.prototype指向了c,但是d.pototype.constructor === d是返回true的,這應該是js引擎做了修改,這也和我們平時實現繼承時的做法一樣。所以es6的繼承其實是基于es5的方法的,只是寫法變了,語法是為了方便我們寫代碼,最后由js做轉化,但是也加了一些特性。
??????首先有一個地方就是把d.__proto__指向了c本身,這里有什么用呢,es5的時候d.__proto__是指向一個function(){}這樣的匿名函數。我們平時使用的call和apply就是存在這個匿名函數里的。es6這個做法我覺得應該是為了支持static這個語法。在class c里面定義一個靜態的函數f,他的子類d也可以通過d.f去訪問,我們把剛開始的那段代碼里的注釋去掉,通過打印我們可以知道Object.prototype.hasOwnProperty.call(c,’f’)//true,Object.prototype.hasOwnProperty.call(d,’f’)//false
d.f訪問的f其實是源于他的父類c的,這就是d.proto = c的作用。最后還有一個地方是,在c里可以定義getter和setter,比如get a(){},這些和es5里都是一樣的,這些屬性都會被掛在到c.prototype里面去。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81169.html

相關文章

  • 深入學習TypeScript

    摘要:是的超級,遵循最新的規范相當于包含了的語法。表示方法沒有返回任何類型類型表示的是那些永不存在的值的類型,例如異常錯誤寫法錯誤三函數內容概述函數的定義可選參數默認參數剩余參數函數重載箭頭函數。 一、Typescript 介紹、環境搭建 1.1 Typescript 介紹 1.TypeScript 是由微軟開發的一款開源的編程語言,像后端 java、C#這樣的面向對象語言可以讓 js 開發...

    趙連江 評論0 收藏0
  • JS 裝飾器解析

    摘要:在的中,定義了種不同裝飾器的接口,其中裝飾類以及裝飾類方法的接口定義如下所示下面對這兩種情況進行解析。作用于類的裝飾器當裝飾的對象是類時,我們操作的就是這個類本身。相關鏈接中的裝飾器裝飾器場景實戰修飾器 showImg(https://segmentfault.com/img/remote/1460000013825346?w=640&h=280); 隨著 ES6 和 TypeScri...

    zzbo 評論0 收藏0
  • 談一談創建React Component幾種方式

    摘要:用這種方式創建組件時,并沒有對內部的函數,進行綁定,所以如果你想讓函數在回調中保持正確的,就要手動對需要的函數進行綁定,如上面的,在構造函數中對進行了綁定。 當我們談起React的時候,多半會將注意力集中在組件之上,思考如何將頁面劃分成一個個組件,以及如何編寫可復用的組件。但對于接觸React不久,還沒有真正用它做一個完整項目的人來說,理解如何創建一個組件也并不那么簡單。在最開始的時候...

    mylxsw 評論0 收藏0
  • ES6系列---類

    摘要:原型會自動調整,通過調用方法即可訪問基類的構造函數。在簡單情況下,等于類的構造函數的值是輸出這段代碼展示了當調用時等于。 大多數面向對象編程語言都支持類和類繼承的特性,而JavaScript只能通過各種特定方式模仿并關聯多個相似的對象。這個情況一直持續到ES5。由于類似的庫層出不窮,最終ES6引入了類特性,統一了類和類繼承的標準。 ES5模仿類 先看一段ES5中模仿類的代碼: func...

    huayeluoliuhen 評論0 收藏0
  • es6之js

    摘要:生成的類的原型會被自動調整,而你還能調用方法來訪問基類的構造器。唯一能避免調用的辦法,是從類構造器中返回一個對象。 起源 JS 從創建之初就不支持類,也沒有把類繼承作為定義相似對象以及關聯對象的主要方式,這讓不少開發者感到困惑。而從 ES1 誕生之前直到ES5 時期,很多庫都創建了一些工具,讓 JS 顯得貌似能支持類。盡管一些 JS 開發者強烈認為這門語言不需要類,但為處理類而創建的代...

    libin19890520 評論0 收藏0

發表評論

0條評論

URLOS

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<