一文掌握JavaScript 中類的用法

文章導讀:AI 輔助學習前端,包含入門、進階、高級部分前端系列內容,當前是 JavaScript?的部分,瑤琴會持續更新,適合零基礎的朋友,已有前端工作經驗的可以不看,也可以當作基礎知識回顧。

這篇文章瑤琴帶大家學習一個重要的概念:類(class)。在 JavaScript 中,ES6 引入了類(class)的概念,使得面向對象編程更加簡潔和易于理解,一起來深入學習吧。

1.類的定義

可以將類視為一種模板或藍圖,用于創建對象。類描述了對象應該具有的屬性和方法。對象是類的實例,通過實例化類來創建。

假設我們有一個類叫做Animal,它描述了動物的一般特征和行為。我們可以將這個類定義為:

class Animal { constructor(name, age) { this.name = name; this.age = age; } speak() { console.log(`${this.name} makes a sound.`); }
}

在這個類中,我們定義了兩個屬性:name 和 age,以及一個方法 speak(),用于讓動物發出聲音。

現在,我們可以使用這個類來創建具體的動物對象。比如,我們創建一個名叫“小貓”的貓對象,這一步也叫做類的實例化

let cat = new Animal('小貓', 2);

在這里,我們通過 new 關鍵字和 Animal 類創建了一個名為 cat 的貓對象。這個對象具有 name 屬性為“小貓”,age 屬性為 2,并且具有 speak()方法,可以讓它發出聲音。
?

所以,類是對象的模板,用于創建具有相似特征和行為的對象。對象則是類的實例,具有類定義的屬性和方法。通過實例化類,我們可以創建多個具有相同特征和行為的對象。

2.類的構造函數

類的構造函數通過 constructor 方法來定義,用于初始化對象的狀態。

class Animal { constructor(name) { this.name = name; } 
}

3.類的方法

在類中可以定義各種方法,方法是對象的行為。

class Animal { constructor(name) { this.name = name; } sayHello() { console.log('Hello, my name is ' + this.name); } 
}

4. 類的繼承

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

class Dog extends Animal { constructor(name, breed) { super(name); this.breed = breed; } 
}

5.?super 關鍵字

在子類的構造函數中使用 super 關鍵字來調用父類的構造函數,初始化子類實例.

class Dog extends Animal { constructor(name, breed) { super(name); this.breed = breed; } 
}

6.?類的靜態方法

使用 static 關鍵字可以定義一個靜態方法,靜態方法屬于類而不是實例。

class Animal { static info() { console.log('This is an animal'); } 
} 
Animal.info(); // 輸出:This is an animal

7.類的訪問器屬性

使用 get 和 set 關鍵字定義訪問器屬性,用于對類的屬性進行讀取和設置。

class Animal { constructor(name) { this._name = name; } get name() { return this._name; } set name(value) { this._name = value; } 
}

8.類的實例檢查

使用 instanceof 關鍵字可以檢查一個對象是否為指定類的實例。

let myDog = new Dog('Buddy', 'Golden Retriever'); 
console.log(myDog instanceof Dog); // 輸出:true 
console.log(myDog instanceof Animal); // 輸出:true

對于初學者來說,今天的內容會顯得吃力,這篇文章關于類的知識點介紹詳細,結合上面的示例,可以一步步實踐并理解。

希望今天的內容對初學前端的朋友有所幫助。也希望每一個初學者都能成為一個優秀的前端開發工程師,加油。

最后啰嗦一句,好記性不如爛筆頭,希望大家在學習的過程中養成做筆記的習慣,形成自己的知識體系。

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

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

相關文章

SQL常用語句--模糊查詢LIKE

like模糊查詢,支持%和下劃線匹配,%匹配多個字符,_下劃線:任意一個字符,示例: 1)查詢名字中含有張的學生信息 select * from student where sname like ‘%張%’; 2)查…

MySQL統計字符長度:CHAR_LENGTH(str)

對于SQL表,用于計算字符串中字符數的最佳函數是 CHAR_LENGTH(str),它返回字符串 str 的長度。 另一個常用的函數 LENGTH(str) 在這個問題中也適用,因為列 content 只包含英文字符,沒有特殊字符。否則,LENGTH() 可能會返…

django使用fetch上傳文件

在上一篇文章中,我包裝了fetch方法,使其攜帶cookie。但是之前fetch傳遞的是json數據,現在有了一個上傳文件的需求,因此需要進行修改: const sendRequest (url, method, data) > {const csrftoken Cookies.get(cs…

discuz如何添加主導航

大家好,今天教大家怎么樣給discuz添加主導航。方法其實很簡單,大家跟著我操作既可。一個網站的導航欄是非常重要的,一般用戶進入網站的第一印象就是看網站的導航欄。如果大家想看效果的話可以搜索下網創有方,或者直接點擊查看效果…

精選免費在線工具與資源推薦20240531

精選免費在線工具與資源推薦 引言 在互聯網高速發展的今天,我們身處一個信息爆炸的時代。為了更好地應對工作和學習中的挑戰,我們時常需要借助各種工具和資源來提高效率。幸運的是,網絡上存在著大量免費且高效的在線工具和資源,…

Google VertexAI API 接入

import vertexai import os #此步非常重要,否則無法訪問,去GCP創建服務賬號密鑰。 os.environ["GOOGLE_APPLICATION_CREDENTIALS"] "服務賬號json格式key" from vertexai.generative_models import GenerativeModel, Part # TO…

嵌入式學習——4——c++ 結構體+類

1、數據類型 基本數據類型:char、int 、float、 double、string、bool 構造數據類型:數組、指針、結構體、共用體、枚舉、類 2、引用 引用就是 別名 數據類型 &引用名 同類型的變量名 (&引用符號) int a 10;int &…

標準發布 | 反滲透和納濾水處理膜修復再利用技術要求

本文件由浙江大學、中華環保聯合會水環境治理專業委員會提出。 本文件由中華環保聯合會歸口。 本文件主編單位:浙江大學、河南一膜環保技術有限公司、安徽精高水處理有限公司、國能龍源環保有限公司、湖南沁森高科新材料有限公司。 本文件參編單位:深…

rtl8723DU移植 android4.4 4418

一、 linux 的移植。 首先編譯一遍確保沒有問題。 將驅動拷貝到 driver/net/wireless 目錄下。 使用的是: 改寫 makefile Kconfig 去改寫 8723 的makefile 設置menuconfig 使能固有的 庫。 使能USB部分 ieee 部分 編譯一遍 有報錯。 解決: …

MATLAB R2024a下載安裝

目錄 前言 下載安裝教程 資源 前言 一個很好的資源,我自己是一遍過了,非常順利,不說廢話,直接上菜。 下載安裝教程 MATLAB R2024a下載及安裝演示_嗶哩嗶哩_bilibili 資源 MATLAB R2024a網盤資源

Java對sqlserver表的image字段圖片讀取和輸出本地

Java代碼實現對sqlserver數據庫表的image字段圖片的讀取,和輸出存儲到本地 由于表image字段圖片存的內容是二進制值,如何輸出保存到本地: 代碼示例:(注:連接sqlserver數據庫需配置其驅動文件) …

Linux【工具 03】Telnet服務安裝使用(安全性較差 非特殊情況盡量不要使用)

Telnet服務安裝使用 1.說明2.安裝 1.說明 現在大多數服務器的遠程連接基本都是走的SSH協議,也就是常用的22端口【默認端口可以自行調整】。在升級OpenSSH的過程中要卸載老版本,安裝新版本,也就意味著升級過程中如果出現了問題,且…

Spring MVC 應?分層

什么是應用分層 引用分層是一種軟件開發思想 將應用程序分為N個層次每個層次負責各個職責 其中MVC是常見的設計模式這就是應用分層的具體體現 目前主流的開發方式是前后段分離后端開發工程師不再需要關注前端的實現,對此就需要分為表現層,數據層,業務邏…

FPGA DMA IP核使用指南

摘要 本文旨在介紹FPGA中DMA(Direct Memory Access)IP核的使用,包括其基本框架、測試代碼編寫以及仿真波形的分析。DMA是一種允許外圍設備直接與內存進行數據交換的技術,無需CPU的介入,從而提高了數據傳輸的效率。 1. 引言 在現代FPGA設計中,DMA IP核因其…

Day15—圖像爬蟲與簡單處理

圖像爬蟲是一種專門用于從互聯網上下載圖像的網絡爬蟲。除了文本內容,圖像也是網站中的重要組成部分,它們可以用于多種目的,如圖像識別、內容分析、數據備份等。 環境準備 首先,確保你的環境中已安裝Python和必要的庫。如果沒有安裝Pillow庫,可以通過以下命令安裝:pip in…

Leetcode刷題筆記6

34. 在排序數組中查找元素的第一個和最后一個位置 34. 在排序數組中查找元素的第一個和最后一個位置 - 力扣(LeetCode) 解法一:暴力查找 [1, 2, 3, 3, 3, 4, 5] t 3 從前往后掃描暴力查找,最壞情況下O(N) 優化 利用數組有序的…

【LLM多模態】綜述Visual Instruction Tuning towards General-Purpose Multimodal Model

note 文章目錄 note論文1. 論文試圖解決什么問題2. 這是否是一個新的問題3. 這篇文章要驗證一個什么科學假設4. 有哪些相關研究?如何歸類?誰是這一課題在領域內值得關注的研究員?5. 論文中提到的解決方案之關鍵是什么?6. 論文中的…

隨想錄 Day45 1049. 最后一塊石頭的重量 II 494. 目標和 474.一和零

隨想錄 Day45 1049. 最后一塊石頭的重量 II 494. 目標和 474.一和零 1049. 最后一塊石頭的重量 II 題目鏈接 有一堆石頭,用整數數組 stones 表示。其中 stones[i] 表示第 i 塊石頭的重量。 每一回合,從中選出任意兩塊石頭,然后將它們一起…

帶你學習Mybatis之Mybatis全局配置文件

Mybatis全局配置文件 <?xml version"1.0" encoding"UTF-8"?><configuration> <!-- 配置 --> <properties/> <!-- 屬性 --> <settings/> <!-- 設置 --> <typeAliases/> <!-- 類型別名 -->…

車載以太網的未來:OPEN Alliance下17個技術委員會的最新進展與行業影響(下)

從上篇介紹來看&#xff0c;TC1-TC8大多數處于暫停或完成狀態。而TC9-TC17在2023年都有不同程度的進展&#xff0c;讓我們繼續探索藏在其中的車載以太網的發展和挑戰。 TC9 Automotive Ethernet Channel & Components&#xff08;in progress&#xff09; TC9的目標是為通…