ES6從入門到精通:類與繼承

ES6 類的基本概念

ES6 引入了基于類的面向對象編程語法,通過 class 關鍵字定義類。類可以包含構造函數、方法和屬性。

class Person {constructor(name) {this.name = name;}greet() {console.log(`Hello, ${this.name}!`);}
}const person = new Person('Alice');
person.greet(); // 輸出: Hello, Alice!

類的繼承

使用 extends 關鍵字實現繼承,子類可以繼承父類的屬性和方法。

class Student extends Person {constructor(name, grade) {super(name); // 調用父類構造函數this.grade = grade;}study() {console.log(`${this.name} is studying in grade ${this.grade}.`);}
}const student = new Student('Bob', 5);
student.greet(); // 輸出: Hello, Bob!
student.study(); // 輸出: Bob is studying in grade 5.

靜態方法與屬性

靜態方法和屬性屬于類本身,而非實例。通過 static 關鍵字定義。

class MathHelper {static PI = 3.14159;static calculateArea(radius) {return this.PI * radius * radius;}
}console.log(MathHelper.calculateArea(5)); // 輸出: 78.53975

類的訪問器

通過 getset 定義訪問器屬性,控制屬性的讀取和賦值行為。

class Temperature {constructor(celsius) {this._celsius = celsius;}get fahrenheit() {return this._celsius * 9 / 5 + 32;}set fahrenheit(value) {this._celsius = (value - 32) * 5 / 9;}
}const temp = new Temperature(25);
console.log(temp.fahrenheit); // 輸出: 77
temp.fahrenheit = 86;
console.log(temp._celsius);   // 輸出: 30

類的私有字段

ES2022 引入了私有字段(Private Fields),通過在字段名前加 # 實現私有化。

class Counter {#count = 0;increment() {this.#count++;}getCount() {return this.#count;}
}const counter = new Counter();
counter.increment();
console.log(counter.getCount()); // 輸出: 1
// console.log(counter.#count);   // 報錯: Private field '#count' must be declared in an enclosing class

類的檢查與擴展

使用 instanceof 檢查對象是否屬于某個類,通過 Object.getPrototypeOf 獲取原型鏈。

console.log(student instanceof Student); // true
console.log(student instanceof Person);  // true
console.log(Object.getPrototypeOf(student) === Student.prototype); // true

以上內容涵蓋了 ES6 類的核心特性,包括定義、繼承、靜態成員、訪問器、私有字段以及類型檢查。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89459.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89459.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89459.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【經驗】新版Chrome中Proxy SwitchyOmega2已實效,改為ZeroOmega

1、問題描述 手欠更新了 Chrome 導致無法“上網”,原因是 Proxy SwitchyOmega2 已實效。 2、解決方法 2.1 下載 新版Chrome中Proxy SwitchyOmega2已實效,改為ZeroOmega; 想方設法去下載 ZeroOmega 的crx包,最新的為&#xff1…

在windows上設置python的環境

安裝好了python,再具體說下python語言的相關環境。 #01 關于Python Python 是一個高級別的、邊運行邊解釋的、動態類型的編程語言,以簡潔的語法、強大的功能和豐富的資源庫而聞名。廣泛應用于 Web 開發、數據分析、人工智能、自動化腳本等多個領域。 目前 Python 語言有兩…

3D 建模與點云建模:從虛擬構建到實景復刻的數字孿生雙引擎

在數字化浪潮席卷全球的當下,3D 建模與點云建模如同數字世界的左膀右臂,一個以抽象化的創意構建虛擬藍圖,一個以高精度的實景數據復刻現實世界。它們不僅深刻重塑了影視娛樂、工業制造、建筑設計等傳統領域,更成為數字孿生技術蓬勃…

智能檢測原理和架構

大家讀完覺得有幫助記得關注和點贊!!! 智能檢測系統基于AI和大數據分析技術,通過主動感知、行為建模與實時響應構建動態防御體系。其核心在于將傳統規則匹配升級為**多模態威脅認知**,實現對新型攻擊(如AI…

2025年6月個人工作生活總結

本文為 2025年6月工作生活總結。 研發編碼 某國產操作系統curl下載sftp服務器文件問題記錄 場景: 某國產系統curl版本信息: # curl --version curl 7.71.1 (x86_64-koji-linux-gnu) libcurl/7.71.1 OpenSSL/1.1.1f-fips zlib/1.2.11 brotli/1.0.7 li…

Java 導出PDF 1、內容可以插入自定義表格 2、內容插入圖片

Java PDF導出工具:自定義表格與圖片插入 下面我將實現一個Java PDF導出工具,支持插入自定義表格和圖片的功能。這個解決方案使用iText 7庫,提供了一個直觀的用戶界面,可以預覽生成的PDF內容。 import javax.swing.*; import jav…

sklearn機器學習概述及API詳細使用指南

一、機器學習與sklearn簡介 機器學習是人工智能的一個分支,它通過算法讓計算機從數據中學習規律,并基于這些規律做出預測或決策。scikit-learn(簡稱sklearn)是Python中最流行的機器學習庫之一,它提供了各種監督學習和…

「日拱一碼」015 機器學習常用庫——scikit-learn

目錄 數據預處理 數據標準化(StandardScaler) 數據歸一化(MinMaxScaler) 數據離散化(KBinsDiscretizer) 缺失值處理(SimpleImputer) 特征選擇 基于單變量特征選擇&#xff08…

網絡編程學習路線

C網絡編程從零基礎到精通的學習路線,每一步都和你的項目實際需求緊密結合,幫助你真正做到“學以致用”。 C網絡編程學習路線(結合FileHub項目) 第一階段:網絡編程基礎入門 1. 計算機網絡基礎 理解OSI七層模型、TCP/I…

NLP:文本張量表示方法

本文目錄: 一、one-hot編碼二、word2vec模型(一)概念1.CBOW(Continuous bag of words)模式2.skipgram模式:3.詞向量的檢索獲取 (二)word2vec的訓練和使用1. 獲取訓練數據2.查看原始數據3.原始數據處理,并查…

高階數據結構------并查集

并查集 在一些應用問題中,需要將n個不同的元素劃分成一些不相交的集合。開始時,每個元素自成一個集合,然后按照一定的規律將歸于同一組的元素集合合并。在此過程中要反復用到查詢某一個元素歸屬于哪一個集合的運算。適合于描述這類問題的抽象…

OWASP Top 10 是什么?

OWASP(Open Web Application Security Project,開放Web應用安全項目)是一個致力于提高軟件安全性的國際非營利組織。其發布的 ?OWASP Top 10? 是最具影響力的Web應用安全風險清單,每3-4年更新一次,幫助開發人員、安全…

如何在IIS上部署net系統(安裝iis參考上一篇)

1.對后端項目打包,我使用的時rider 2.打包前端 npm run build 3.在iis上部署 網站-添加網站 4.選擇之前打包的后端文件,設置端口 5.安裝對應net環境插件:主要是runtime和sdk插件以及dotnet-hosting-2.2.0-win,具體版本看自己項…

Docker可視化管理工具Portainer安裝部署

1、安裝Portainer 編寫docker compose文件,使用docker compose文件完成Portainer的安裝,首先需要在服務器上編寫的名為portainer.yaml的文件,內容如下: [rootserver ~]# cat portainer.yaml services: portainer: image:…

ai之RAG本地知識庫--基于OCR和文本解析器的新一代RAG引擎:RAGFlow 認識和源碼剖析

目錄標題 RAG本地知識庫問答——基于OCR和文本解析器的新一代RAG引擎:RAGFlow 認識和源碼剖析RAGflow 主要功能: 一、RAGflow 簡介1.1 允許用戶上傳并管理自己的文檔(文檔類型可以是任意類型)1.2 RAGFlow的4個特色1.2.1 AI 模型的智能文檔處理系統1.2.2 …

[面試] 手寫題-new

function mynew(Func, ...args) {// 1.創建一個空對象const obj {}// 2.新對象隱式原型指向構造函數的顯式原型obj.__proto__ Func.prototype// 3.將構建函數的this指向新對象let result Func.apply(obj, args)// 4.返回objreturn result instanceof Object ? result : obj…

設計模式精講 Day 20:狀態模式(State Pattern)

【設計模式精講 Day 20】狀態模式(State Pattern) 文章標簽 設計模式, 狀態模式, Java開發, 面向對象設計, 軟件架構, 設計模式實戰, Java應用開發 文章簡述 狀態模式是行為型設計模式中的重要一員,用于管理對象在不同狀態下的行為變化。在…

橋島隧大型工程 3D 可視化監測平臺

深中通道作為“橋、島、隧、水下互通”一體化跨海集群工程,其復雜結構帶來高強度監測難題。借助圖撲軟件 HT 實現深中通道的建設與運營的數字化升級,為交通基建行業邁向高效、智能的未來提供了有力支撐。 圖撲自主研發的 HT for Web 產品搭建深中通道-橋…

基于SpringBoot和Leaflet的區域沖突可視化系統(2025企業級實戰方案)

摘要 在全球地緣沖突與應急事件頻發的2025年,區域態勢可視化系統成為政府及企業的決策剛需。本文提出基于??SpringBoot 3.2??后端與??Leaflet 1.9.5??前端的沖突可視化解決方案,融合多源異構數據(衛星影像、輿情熱力、設施狀態&…

[密碼學實戰]國密TLCP協議報文解析代碼實現(三十)

[密碼學實戰]國密TLCP協議報文解析代碼實現(三十) 本文將深入解析國密TLCP協議報文結構,提供完整的Java實現代碼,幫助開發者理解TLCP協議在國密環境下的通信機制和安全性設計。 一、國密TLCP協議概述 TLCP(Transport Layer Cryptographic Protocol)是基于國密算法(SM2/…