国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - 一份不可多得的 TypeScript 學習筆記

一份不可多得的 TypeScript 學習筆記

2022-02-21 22:52前端人 js教程

本篇文章主要介紹TypeScript 中類的定義、類的繼承、類中成員修飾符等內容。

Hi,我是前端人,今日與君共勉!本篇文章主要介紹 typeScript 中類的定義、類的繼承、類中成員修飾符等內容。

typeScript 中的類與 ES6 中的類非常相似,如果不知道 ES6 中的類,建議先學習下 ES6 中的 class 。本篇文章重點介紹 typeScript 中的類定義、繼承以及修飾符。

1、類的定義

類描述了所創建的對象共同的屬性和方法。typeScript 支持面向對象的所有特性,比如類、接口等。

在 typeScript 中定義類的時候,使用 class 關鍵字,類名首字母使用大寫,類可以包含以下三個模塊:

  • 字段 - 字段是類里面聲明的變量,表示與對象有關的屬性。
  • 構造函數 - 類實例化時自動調用,可以為實例化的對象分配內存。
  • 方法 - 方法為對象要執行的某種操作。

定義屬性的時候,需要添加屬性類型,構造函數中的參數也需要加類型,引用任何一個類的成員的時候都用 this ,this 關鍵字表示當前類實例化的對象。使用 new 關鍵字來實例化對象,并初始化它。如示例:

class Web{ workTime: string constructor(n:string) { this.workTime = n } showWork(){ return "搬磚的前端" }
} let qq = new Web("五年") console.log(qq.showWork()); console.log(qq.workTime);

編譯以上代碼,得到的 js 代碼如下:

"use strict"; class Web { constructor(n) { this.workTime = n;
 } showWork() { return "搬磚的前端";
 }
} let qq = new Web("五年"); console.log(qq.showWork()); console.log(qq.workTime);

2、類的繼承

typeScript 支持繼承類,即可以在創建類的時候繼承一個已存在的類,類繼承的時候使用 extends 關鍵字,基于類的程序設計中一種最基本的模式是允許使用繼承來擴展現有的類。比如:

class Dirnks{ name: string constructor(n: string) { this.name = n } save(m: string) { console.log(`${this.name}飲料應該${m}`);
 }
} class Soda extends Dirnks{ constructor(n: string) { super(n)
 }
} let kele = new Soda("可樂") kele.save("冷藏")

上述示例是一個最基本的類繼承,其中 Soda 繼承了 Dirnks 的屬性和方法,其中 Soda 是一個派生類,也叫做子類,Dirnks 是一個基類,也叫超類或父類。

派生類包含了一個構造函數,構造函數必須調用 super() ,會執行基類的構造函數。需要注意的是:在子類構造函數里訪問 this 的屬性之前,一定要先調用 super ,這是 typeScript 強制執行的一條重要規則。

如果父類和子類都包含某一方法時,方法名相同,但是具體執行內容不同的時候,該執行哪一個方法呢?

修改上述實例,給子類也添加一個方法,代碼如下:

class Dirnks{ name: string constructor(n: string) { this.name = n } save(m: string) { console.log(`${this.name}飲料應該${m}`);
 }
} class Soda extends Dirnks{ constructor(n: string) { super(n)
 } save() { return "存儲方法" }
} let kele = new Soda("可樂") console.log(kele.save());

編譯以上代碼啊,得到的 js 代碼如下:

"use strict"; class Dirnks { constructor(n) { this.name = n;
 } save(m) { console.log(`${this.name}飲料應該${m}`);
 }
} class Soda extends Dirnks { constructor(n) { super(n);
 } save() { return "存儲方法";
 }
} let kele = new Soda("可樂"); console.log(kele.save());

此時會執行子類中的方法。其原理是,類繼承后,子類可以對父類的方法進行重新定義,這個過程稱之為方法的重寫。

typeScript 中子類只能繼承一個父類,雖然不支持繼承多個類,但是支持多重繼承。如下:

class One{ name: string constructor(n: string) { this.name = n } show() { return "展示" }
} class Two extends One{ constructor(n:string) { super(n)
 }
} class Three extends Two{ constructor(n: string) { super(n)
 }
} let three = new Three("剁成") console.log(three.show());

3、修飾符

在 typeScript 中,可以使用訪問控制符來保護對類、變量、方法和構造函數的訪問。typeScript 支持 3 種不同的訪問權限,分別為:

  • public(默認) - 公有,表示共享的屬性和方法。可以在任何地方被訪問。
  • protected - 受保護,表示屬性和方法被保護,可以被自身以及子類訪問,不能在類外面使用。
  • private - 私有,只能被其定義所在的類訪問。
  • readonly - 只讀,只讀屬性必須在聲明時或構造函數里初始化。

理解 public

在上邊類中的成員定義的時候,沒有明確使用任何修飾符,默認的就是 public ,所以可以將上面的類改寫為:

class HH{ public name: string public constructor(n: string) { this.name = n }
} let h = new HH("HH") console.log(h.name);

使用 public 之后,對上面的應用并沒有任何影響。

它的特點:被它標記的成員在類的里面、子類里面、類外面都可以訪問到。

理解 protected

類中添加 protected 修飾符來修飾成員時,將上述實例的 public 修飾符修改為 protected 如下:

class HH{ protected name: string constructor(n: string) { this.name = n }
} let h = new HH("HH") console.log(h.name); // 此處報錯,提示 屬性"name"受保護,只能在類 HH 及子類中訪問

它的特點:被它標記的成員在類的里面、子類里面能使用,但是在類的外面不能使用。

理解 private

class HH{ private name: string constructor(n: string) { this.name = n }
} class H extends HH{ constructor(n: string) { super(n)
 } show() { console.log(this.name); // 報錯 }
} let h = new H("HH") console.log(h.name); // 報錯 h.show()

上面的示例報錯,提示:屬性“name”為私有屬性,只能在類“HH”中訪問。

它的特點:被它標記的成員不能再聲明它的類的外部訪問。

原文地址:https://www.toutiao.com/a7065098067002802727/

延伸 · 閱讀

精彩推薦
  • js教程javascript實現倒計時提示框

    javascript實現倒計時提示框

    這篇文章主要為大家詳細介紹了javascript實現倒計時提示框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    友人CWH8422022-01-25
  • js教程利用 JavaScript 實現并發控制的示例代碼

    利用 JavaScript 實現并發控制的示例代碼

    這篇文章主要介紹了利用 JavaScript 實現并發控制的示例代碼,本文通過實例代碼給大家介紹的非常想詳細,對大家的學習或工作具有一定的參考借鑒價值,需...

    descire3912021-12-23
  • js教程用Javascript實現發送短信驗證碼間隔功能

    用Javascript實現發送短信驗證碼間隔功能

    這篇文章主要介紹了用Javascript實現發送短信驗證碼間隔功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以...

    愛前端的茂茂9412022-01-19
  • js教程JavaScript/TypeScript 實現并發請求控制的示例代碼

    JavaScript/TypeScript 實現并發請求控制的示例代碼

    這篇文章主要介紹了JavaScript/TypeScript 實現并發請求控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    鳳晴鈴玉3992022-01-04
  • js教程js刪除指定位置超鏈接中含有百度與360的標題

    js刪除指定位置超鏈接中含有百度與360的標題

    最近需要將最近更新的部分內容刪除,只要標題中包括百度與360的都給刪除了,主要用到了jquery的each,需要的朋友可以參考下...

    JS教程網3752021-12-27
  • js教程詳解三種Javascript圖片預加載的方法

    詳解三種Javascript圖片預加載的方法

    預加載圖片是提高用戶體驗的一個很好方法。圖片預先加載到瀏覽器中,訪問者便可順利地在你的網站上沖浪,并享受到極快的加載速度。...

    鋒享前端9562022-01-04
  • js教程js實現簡單放大鏡特效

    js實現簡單放大鏡特效

    這篇文章主要為大家詳細介紹了js實現簡單放大鏡特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    一個21歲的老同志9572022-02-13
  • js教程uniapp微信小程序:key失效的解決方法

    uniapp微信小程序:key失效的解決方法

    這篇文章主要介紹了uniapp微信小程序:key失效的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    灬都是個謎11132022-01-05
主站蜘蛛池模板: 在线观看亚洲专区 | 亚洲一区二区在线看 | 国产精品国产精品国产专区不卡 | 欧美激情视频一区二区三区在线播放 | 免费一级在线观看 | 综合婷婷| 国产精品久久亚洲 | 午夜精品影院 | 三级在线观看网站 | 狠狠干最新网址 | 亚洲 欧美 日韩在线 | 国产成人精品久久二区二区 | 午夜视频免费在线观看 | 综合99| 艹逼短视频 | 99热首页| 国产激情| 中文字幕乱码亚洲精品 | 三级黄色片在线观看 | 黄色影视| 国产精品18久久久 | 成人永久免费视频 | 久久久久久久久久久免费 | 日韩中文字幕在线播放 | 中文字幕1区2区3区 亚洲欧美日韩精品久久亚洲区 | 精品中文字幕一区 | 亚洲成人一区二区在线观看 | 91短视频版在线观看www免费 | 亚洲国产精品久久 | 黄网站在线播放 | 亚洲精选一区二区 | 一区二区蜜桃 | 久久久一区二区 | 国产在线网 | 亚洲视频播放 | 影音先锋网址 | 成人免费视频在线观看 | 97高清国语自产拍 | 亚洲一区二区三区四区五区中文 | 国产视频在线播放 | 久久精品国产亚卅av嘿嘿 |