欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript Class的正確使用方法詳解

 更新時(shí)間:2025年03月23日 09:42:43   作者:燭陰  
在JavaScript中,類是通過class關(guān)鍵字來定義的,它的本質(zhì)是一種語法糖,仍然是基于原型鏈的,class 內(nèi)部的屬性和方法最終都會添加到構(gòu)造函數(shù)的 prototype 屬性上,本文給大家介紹了JavaScript Class的正確打開方式,需要的朋友可以參考下

一、什么是 Class?

類是構(gòu)造對象的藍(lán)圖,它定義了對象的屬性和方法。在JavaScript中,類是通過class關(guān)鍵字來定義的,它的本質(zhì)是一種語法糖,仍然是基于原型鏈的,class 內(nèi)部的屬性和方法最終都會添加到構(gòu)造函數(shù)的 prototype 屬性上。class 關(guān)鍵字提供了一種更清晰、更結(jié)構(gòu)化的方式來定義對象和它們之間的關(guān)系。

二、Class 的基本語法:

class Person {
  // 構(gòu)造函數(shù)
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  // 方法
  sayHello() {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }

  // 靜態(tài)方法
  static greet() {
    console.log("Hello!");
  }
}

// 創(chuàng)建實(shí)例
let person1 = new Person("Alice", 30);
person1.sayHello(); // 輸出 "Hello, my name is Alice and I am 30 years old."

// 調(diào)用靜態(tài)方法
Person.greet(); // 輸出 "Hello!"

Class 的組成部分:

  • constructor 構(gòu)造函數(shù),用于創(chuàng)建和初始化對象。如果沒有顯式定義 constructor,JavaScript 會自動創(chuàng)建一個(gè)默認(rèn)的構(gòu)造函數(shù)。
  • 方法: 定義在 class 內(nèi)部的函數(shù),用于描述對象的行為。
  • 靜態(tài)方法: 使用 static 關(guān)鍵字定義的方法,屬于類本身,而不是類的實(shí)例??梢酝ㄟ^類名直接調(diào)用靜態(tài)方法。

三、Class 的繼承:

使用 extends 關(guān)鍵字可以實(shí)現(xiàn)類的繼承。子類可以繼承父類的屬性和方法,并可以添加自己的屬性和方法。

class Student extends Person {
  constructor(name, age, major) {
    // 調(diào)用父類的構(gòu)造函數(shù)
    super(name, age);
    this.major = major;
  }

  study() {
    console.log(`${this.name} is studying ${this.major}.`);
  }

  // 重寫父類的方法
  sayHello() {
    console.log(`Hello, my name is ${this.name}, I am ${this.age} years old, and I am studying ${this.major}.`);
  }
}

let student1 = new Student("Bob", 20, "Computer Science");
student1.sayHello(); // 輸出 "Hello, my name is Bob, I am 20 years old, and I am studying Computer Science."
student1.study(); // 輸出 "Bob is studying Computer Science."

繼承的關(guān)鍵點(diǎn):

  • extends 用于指定父類。
  • super() 用于調(diào)用父類的構(gòu)造函數(shù)。必須在子類的構(gòu)造函數(shù)中調(diào)用 super(),才能正確初始化父類的屬性。
  • 方法重寫 (Override): 子類可以定義與父類同名的方法,從而覆蓋父類的方法。

四、Getter 和 Setter:

可以使用 getset 關(guān)鍵字定義屬性的 getter 和 setter 方法,從而控制屬性的訪問和修改。

class Circle {
  constructor(radius) {
    this._radius = radius; // 使用 _radius 作為內(nèi)部屬性
  }

  get radius() {
    return this._radius;
  }

  set radius(value) {
    if (value <= 0) {
      throw new Error("Radius must be positive.");
    }
    this._radius = value;
  }

  get area() {
    return Math.PI * this._radius * this._radius;
  }
}

let circle1 = new Circle(5);
console.log(circle1.radius); // 輸出 5
console.log(circle1.area); // 輸出 78.53981633974483

circle1.radius = 10;
console.log(circle1.radius); // 輸出 10
console.log(circle1.area); // 輸出 314.1592653589793

// circle1.radius = -1; // 拋出錯(cuò)誤 "Radius must be positive."

五、靜態(tài)屬性:

可以使用 static 關(guān)鍵字定義靜態(tài)屬性,靜態(tài)屬性屬于類本身,而不是類的實(shí)例。

class Counter {
  static count = 0;

  constructor() {
    Counter.count++;
  }

  static getCount() {
    return Counter.count;
  }
}

let counter1 = new Counter();
let counter2 = new Counter();
console.log(Counter.getCount()); // 輸出 2

到此這篇關(guān)于JavaScript Class的正確使用方法詳解的文章就介紹到這了,更多相關(guān)JavaScript Class用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript中的this關(guān)鍵字用法詳解

    JavaScript中的this關(guān)鍵字用法詳解

    在編寫JavaScript應(yīng)用的時(shí)候,我們經(jīng)常會使用this關(guān)鍵字。那么this關(guān)鍵字究竟是怎樣工作的,它的設(shè)計(jì)有哪些好的地方,有哪些不好的地方,本文帶大家全面系統(tǒng)地認(rèn)識這個(gè)老朋友,感興趣的小伙伴可以借鑒閱讀
    2023-05-05
  • 使用typeof方法判斷undefined類型

    使用typeof方法判斷undefined類型

    使用typeof方法,typeof 返回的是字符串,其中就有一個(gè)是undefined,下面是示例代碼,大家可以看看
    2014-09-09
  • 微信小程序在Tab的icon上顯示消息數(shù)量的方法

    微信小程序在Tab的icon上顯示消息數(shù)量的方法

    這篇文章主要介紹了微信小程序在Tab的icon上顯示消息數(shù)量的方法,首先,在app.json文件中,找到對應(yīng)的tabBar配置,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 使用JavaScript實(shí)現(xiàn)一個(gè)拖拽縮放效果

    使用JavaScript實(shí)現(xiàn)一個(gè)拖拽縮放效果

    這篇文章主要介紹了如何使用JS實(shí)現(xiàn)一個(gè)這樣的拖拽縮放效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 小程序?qū)崿F(xiàn)左右來回滾動字幕效果

    小程序?qū)崿F(xiàn)左右來回滾動字幕效果

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)左右來回滾動字幕效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JS實(shí)現(xiàn)的在線調(diào)色板實(shí)例(附demo源碼下載)

    JS實(shí)現(xiàn)的在線調(diào)色板實(shí)例(附demo源碼下載)

    這篇文章主要介紹了JS實(shí)現(xiàn)的在線調(diào)色板,可實(shí)現(xiàn)響應(yīng)鼠標(biāo)點(diǎn)擊動態(tài)改變調(diào)色板顏色的功能,涉及JavaScript針對頁面元素屬性的動態(tài)操作與計(jì)算技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2016-03-03
  • Bootstrap導(dǎo)航條學(xué)習(xí)使用(一)

    Bootstrap導(dǎo)航條學(xué)習(xí)使用(一)

    這篇文章主要為大家詳細(xì)介紹了Bootstrap導(dǎo)航條的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JS 毫秒轉(zhuǎn)時(shí)間示例代碼

    JS 毫秒轉(zhuǎn)時(shí)間示例代碼

    毫秒轉(zhuǎn)時(shí)間的方法有很多,在本文將為大家介紹下js中是如何實(shí)現(xiàn)的,感興趣的朋友可以參考下
    2013-09-09
  • 判斷控件是否已加載完成的代碼

    判斷控件是否已加載完成的代碼

    判斷一個(gè)控件是否已加載完成其實(shí)很簡單,就是利用瀏覽器的解析順序。通俗的說,代碼的位置越靠前,就越先加載。
    2010-02-02
  • clipboard.js在移動端復(fù)制失敗的解決方法

    clipboard.js在移動端復(fù)制失敗的解決方法

    最近在使用clipboard.js碰到的一個(gè)小問題,通過查找相關(guān)資料解決了,所以下面這篇文章主要給大家介紹了關(guān)于clipboard.js在移動端復(fù)制失敗的解決方法,需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06

最新評論