首页 > web前端 > js教程 > 正文

面向对象编程_javascript类与继承

php中文网
发布: 2025-12-06 06:31:09
原创
382人浏览过
JavaScript中的class是基于原型的语法糖,通过class定义类并用constructor初始化实例,方法挂载于原型;使用extends实现继承,子类需调用super()初始化父类,支持方法重写;static定义静态方法供类直接调用;#开头的私有字段限制外部访问,提升封装性。

面向对象编程_javascript类与继承

JavaScript 中的面向对象编程(OOP)基于原型(prototype),但 ES6 引入了 class 语法,让开发者可以用更清晰、更接近传统语言的方式来创建对象和实现继承。虽然 class 在 JavaScript 中是“语法糖”,其底层仍是基于原型机制,但使用它可以让代码结构更清晰、更易维护。

JavaScript 类的基本语法

使用 class 关键字可以定义一个类。类中通常包含一个 constructor 方法用于初始化实例属性,以及其它方法定义对象行为。

示例:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
<p>sayHello() {
console.log(<code>你好,我是${this.name},今年${this.age}岁。</code>);
}
}</p><p>const p1 = new Person("小明", 25);
p1.sayHello(); // 输出:你好,我是小明,今年25岁。
登录后复制

在这个例子中,Person 是一个类,constructor 构造函数在使用 new 创建实例时自动调用,sayHello 是原型上的方法,所有实例共享。

类的继承:extends 与 super

JavaScript 支持通过 extends 实现类的继承,子类可以继承父类的属性和方法。在子类构造函数中,必须先调用 super() 来调用父类的构造函数。

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

示例:

class Student extends Person {
  constructor(name, age, grade) {
    super(name, age); // 调用父类构造函数
    this.grade = grade;
  }
<p>study() {
console.log(<code>${this.name} 正在学习,年级是 ${this.grade}。</code>);
}</p><p>// 可以重写父类方法
sayHello() {
console.log(<code>我是学生 ${this.name},今年${this.age}岁,读 ${this.grade} 年级。</code>);
}
}</p><p>const s1 = new Student("小红", 20, "大三");
s1.sayHello(); // 覆盖后的方法
s1.study();    // 子类特有方法
登录后复制

这里 Student 继承了 Person 的所有功能,并扩展了自己的属性和方法。通过 super() 确保父类正确初始化,这是子类构造函数中的必要步骤。

android界面布局详解 中文WORD版
android界面布局详解 中文WORD版

本文档主要讲述的是android界面布局详解;在通过“Hello World!”介绍Android中的布局问题之前,不得不先介绍一下Android中的用户界面,因为布局问题也是用户界面问题之一。在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种Views和ViewGroups,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过

android界面布局详解 中文WORD版 1
查看详情 android界面布局详解 中文WORD版

静态方法与私有字段(可选)

类中还可以定义静态方法,它们属于类本身而不是实例,通过 static 关键字声明。

class MathUtils {
  static add(a, b) {
    return a + b;
  }
}
<p>console.log(MathUtils.add(3, 5)); // 8
登录后复制

静态方法常用于工具函数或不需要实例化的操作。

现代 JavaScript 还支持私有字段(以 # 开头),限制外部访问:

class BankAccount {
  #balance = 0;
<p>deposit(amount) {
this.#balance += amount;
}</p><p>getBalance() {
return this.#balance;
}
}</p><p>const account = new BankAccount();
account.deposit(100);
console.log(account.getBalance()); // 100
// account.#balance; // 错误:无法访问私有字段
登录后复制

总结

JavaScript 的 class 提供了一种更直观的方式来组织面向对象的代码。通过 class 定义模板,用 extends 实现继承,配合 super 调用父类逻辑,再加上静态方法和私有字段的支持,使得 JS 的 OOP 更加完整和安全。尽管底层仍是原型链,但 class 让开发体验更接近传统面向对象语言。

基本上就这些,掌握好类与继承,能让你写出结构清晰、易于扩展的 JavaScript 应用。不复杂但容易忽略的是 super 的调用时机和私有字段的命名规则。

以上就是面向对象编程_javascript类与继承的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号