掌握 JavaScript 类:现代 OOP 完整指南

掌握 javascript 类:现代 oop 完整指南

JavaScript 类:现代面向对象编程

ES6 引入的 JavaScript 类,是基于原型继承的语法糖衣,提供了一种更清晰、结构化的方法来定义和使用对象以及继承机制,从而提升代码的可读性和组织性。

类定义

使用 class 关键字定义类:

示例:

class Person {  constructor(name, age) {    this.name = name;    this.age = age;  }  greet() {    console.log(`您好,我的名字是 ${this.name},我 ${this.age} 岁。`);  }}const person1 = new Person("Alice", 25);person1.greet(); // 您好,我的名字是 Alice,我 25 岁。

核心特性

构造函数 (constructor): 用于初始化对象实例的特殊方法,在创建新实例时自动调用。

立即学习“Java免费学习笔记(深入)”;

示例:

class Car {  constructor(brand) {    this.brand = brand;  }}const myCar = new Car("Toyota");console.log(myCar.brand); // Toyota

方法 (Methods): 类内部定义的函数。

示例:

class Animal {  makeSound() {    console.log("动物发出声音");  }}const dog = new Animal();dog.makeSound(); // 动物发出声音

静态方法 (Static Methods): 使用 static 关键字定义,属于类本身,而非实例。

示例:

class MathUtils {  static add(a, b) {    return a + b;  }}console.log(MathUtils.add(3, 5)); // 8

Getter 和 Setter: 用于访问和修改属性的特殊方法。

示例:

class Rectangle {  constructor(width, height) {    this.width = width;    this.height = height;  }  get area() {    return this.width * this.height;  }}const rect = new Rectangle(10, 5);console.log(rect.area); // 50

类继承

使用 extends 关键字实现继承:

示例:

class Animal {  constructor(name) {    this.name = name;  }  speak() {    console.log(`${this.name} 发出声音。`);  }}class Dog extends Animal {  speak() {    console.log(`${this.name} 汪汪叫。`);  }}const dog = new Dog("Rex");dog.speak(); // Rex 汪汪叫。

私有字段和方法 (ES2022)

# 开头,只能在类内部访问。

示例:

class BankAccount {  #balance;  constructor(initialBalance) {    this.#balance = initialBalance;  }  deposit(amount) {    this.#balance += amount;    console.log(`存款:${amount}`);  }  getBalance() {    return this.#balance;  }}const account = new BankAccount(100);account.deposit(50); // 存款:50console.log(account.getBalance()); // 150// console.log(account.#balance); // Error: 私有字段 '#balance' 无法访问

类表达式

类可以定义为表达式并赋值给变量:

示例:

const Rectangle = class {  constructor(width, height) {    this.width = width;    this.height = height;  }  getArea() {    return this.width * this.height;  }};const rect = new Rectangle(10, 5);console.log(rect.getArea()); // 50

原型继承与类的结合

类可以与 JavaScript 的原型继承结合使用。

示例:

class Person {}Person.prototype.sayHello = function() {  console.log("你好!");};const person = new Person();person.sayHello(); // 你好!

最佳实践

封装: 使用私有字段保护数据。可重用性: 利用继承重用代码。避免过度复杂: 适度使用类。一致性: 遵循命名规范。

总结

JavaScript 类提供了一种更清晰、高效的面向对象编程方式,通过继承、静态方法、私有字段和封装等特性,方便构建可扩展、易维护的应用程序。

作者:Abhay Singh Kathayat
全栈开发人员,精通多种编程语言和框架。联系邮箱:kaashshorts28@gmail.com

以上就是掌握 JavaScript 类:现代 OOP 完整指南的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1499630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 21:55:43
下一篇 2025年12月19日 21:56:07

相关推荐

  • 掌握 XMLHttpRequest:JavaScript 中 AJAX 调用指南

    使用XMLHttpRequest进行AJAX调用 JavaScript的核心功能XMLHttpRequest (XHR) 对象,允许开发者在不刷新页面的情况下异步地向服务器发送和接收数据,是构建动态交互式Web应用的基础,也是AJAX(异步JavaScript和XML)的核心。 1. 什么是XMLH…

    好文分享 2025年12月19日
    000
  • 了解 JavaScript 原型:继承和方法共享综合指南

    JavaScript原型机制:继承与共享的精髓 JavaScript中的原型机制,是其对象创建和继承的基础。每个对象都关联一个原型对象,用于继承属性和方法,实现代码复用和高效的继承方式。 1. 原型是什么? 每个JavaScript对象都拥有一个内部属性[[Prototype]],指向其原型对象。该…

    2025年12月19日
    000
  • 掌握 JavaScript 中的对象

    JavaScript 对象详解 JavaScript 对象是键值对的集合,值可以是数据(属性)或函数(方法)。 它在 JavaScript 中至关重要,因为几乎所有事物,包括数组、函数甚至其他对象,都是对象。 1. 对象创建方法 a. 对象字面量 最便捷的创建对象方式是使用花括号 {}。 示例: c…

    2025年12月19日
    000
  • 掌握 JavaScript 中的解构:简化数组和对象

    JavaScript 解构:数组和对象的简化处理 ES6 引入的 JavaScript 解构功能,让数组和对象数据的提取和赋值变得高效便捷。它提升了代码的可读性和简洁性。 1. 数组解构 数组解构将数组元素直接赋值给变量: const numbers = [1, 2, 3, 4];const [x,…

    2025年12月19日
    000
  • 掌握 JavaScript 中的数组函数:slice、splice 和 forEach

    JavaScript 数组函数详解:slice、splice 和 forEach JavaScript 提供丰富的内置数组方法,方便开发者操作和处理数组元素。本文重点介绍三种常用的数组方法:slice、splice 和 forEach,它们能显著提升数组操作的效率和代码简洁性。 1. slice()…

    2025年12月19日
    000
  • 掌握 JavaScript 中的数字方法

    javascript 中的数字方法 javascript 提供了多种内置方法来有效地处理数字。这些方法允许您执行格式化、舍入、解析和验证数字等操作。 1.转换数字 a. tostring() 将数字转换为字符串。 const num = 123;console.log(num.tostring())…

    好文分享 2025年12月19日
    000
  • 掌握 JavaScript 中的柯里化:增强代码的可重用性和灵活性

    JavaScript 柯里化详解 柯里化是 JavaScript 函数式编程中的一项重要技术,它将接受多个参数的函数转换为一系列只接受单个参数的函数链。这种方法增强了函数的灵活性,并提升了代码的可重用性。 1. 柯里化机制 柯里化过程将一个多参数函数分解为一系列单参数函数。第一个函数接收第一个参数,…

    2025年12月19日
    000
  • JavaScript 中的原型链:理解继承和对象查找

    JavaScript 原型链详解 JavaScript 的原型链是其继承机制的核心概念,它允许对象继承其他对象的属性和方法。 原型链工作机制 创建 JavaScript 对象时,它会链接到另一个对象——其原型。每个对象都有一个隐含的内部属性 [[Prototype]],指向其原型对象。 访问对象属性…

    2025年12月19日
    000
  • 了解 JavaScript 运算符:带有示例的完整指南

    ### javascript 中的运算符 javascript 中的运算符是用于对值和变量执行运算的特殊符号。这些操作可以涉及算术、赋值、比较、逻辑和其他操作。了解运算符对于执行基本计算、比较和控制代码流程至关重要。 javascript 支持多种运算符,它们分为以下类型: ### 1. **算术运…

    好文分享 2025年12月19日
    000
  • JavaScript 中类型转换的完整指南:隐式与显式强制转换

    JavaScript 类型转换 JavaScript 的类型转换是指将数据从一种类型转换为另一种类型。作为动态类型语言,JavaScript 变量无需预先声明类型,系统会在需要时自动或手动进行类型转换。 类型转换类型 JavaScript 提供两种类型的转换: 隐式类型转换(类型强制)显式类型转换 …

    2025年12月19日
    000
  • 掌握JavaScript中的数组方法:map、filter和reduce

    JavaScript数组核心方法:map、filter和reduce详解 JavaScript提供了一套强大的数组方法,其中map、filter和reduce这三个高阶函数是每个开发者都必须掌握的利器,它们能显著简化数组操作。 1. map方法 map方法通过回调函数转换数组的每个元素,并返回一个新…

    2025年12月19日
    000
  • AnySphere 的 Cursor:彻底改变 AI 驱动编码

    软件开发世界在不断发展,而人工智能现在处于这一变革的最前沿。在众多重塑行业的人工智能工具中,AnySphere 的 Cursor 作为一款创新的编码助手脱颖而出,旨在简化开发工作流程。无论您是经验丰富的开发人员还是新手,Cursor AnySphere 都提供强大的功能,使您的编码过程更快、更智能、…

    2025年12月19日
    000
  • 人工智能发音训练器

    在本文中,我介绍了我正在从事的项目:AI Pronunciation Trainer(在线),这是一个旨在帮助您利用人工智能的力量提高发音的工具。这个项目是对 Thiagohgl 原始 AI Pronunciation Trainer 的重构,我对其进行了一些改进,以使该工具更有效且更易于使用。 它…

    2025年12月19日
    000
  • 自写 Lang 图状态

    第一人工智能响应: 输出:感谢您伸出援手,.我很乐意为您提供帮助,但我想确保我完全理解您的需求。您能否提供有关您正在寻找的内容的更多详细信息?您分享的信息越多,我就越能提供帮助!我很乐意尽我所能地帮助你。您想进一步探索某个特定领域吗?您的意见将帮助我根据您的具体需求定制我的帮助。我完全致力于让您的体…

    2025年12月19日
    000
  • React 新钩子 useActionState

    通常,在使用表单时,您需要: a) 显示加载程序 b) 显示验证错误 这通常意味着管理几个状态变量。但随着 react 19 中引入的新 useactionstate 钩子,现在有一种更简单的方法来处理它。 链接 演示 代码库 react hook:useactionstate 在以下代码片段中,请…

    2025年12月19日
    000
  • 将 Golang 延迟概念实现到 Javascript 中

    在 go 中,defer 语句推迟函数的执行,直到周围的函数返回。这是一个简单的例子: package mainimport “fmt”func main() { fmt.println(“start”) defer fmt.println(“defer 1”) defer fmt.println(…

    2025年12月19日
    000
  • 发布了一个用于 JS/TS 异步进程同步执行的库

    我发布了一个名为sync-actions 的库,它允许异步进程在 javascript/typescript 中同步执行。特别是在 typescript 中,您可以以类型安全的方式调用定义的函数。它适用于您想要在您不希望(或不能)标记为异步的函数中执行异步进程的情况。 特征 利用 node.jswo…

    2025年12月19日
    000
  • JavaScript 循环综合指南

    JavaScript 循环结构 这份指南将深入探讨 JavaScript 中各种循环结构及其用法,并附带示例代码。 1. for 循环 当循环次数已知时,for 循环是最佳选择。 语法: for (let i = 0; i < 10; i++) { // 代码块} 示例: for (let i…

    2025年12月19日
    000
  • 掌握 JavaScript 中的 JSON 处理:解析和字符串化

    JavaScript JSON 处理:解析与字符串化详解 JSON (JavaScript 对象表示法) 是一种轻量级的数据交换格式,易于人类阅读和编写,也易于机器解析和生成。JavaScript 内置方法可实现 JSON 字符串与 JavaScript 对象的相互转换。 1. 解析 JSON 字符…

    2025年12月19日
    000
  • JavaScript 中字符串操作综合指南

    javascript 中的字符串操作 字符串操作是 javascript 中文本处理的核心方面。 javascript 提供了一组丰富的内置方法和技术来处理和转换字符串。 1.创建字符串 javascript 中的字符串可以使用单引号 (‘)、双引号 (“) 或反引号(` 用…

    好文分享 2025年12月19日
    000

发表回复

登录后才能评论
关注微信