【学习 JavaScript】 JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 字符串模板 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语句 JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript 代码规范 JS 函数 JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包 JS 类 JavaScript 类 JavaScript 类继承 JavaScript 静态方法 JS HTML DOM DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象 JS 高级教程 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象 JS 浏览器BOM JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie JS 库 JavaScript 库 JavaScript 测试 jQuery JavaScript 测试 Prototype JS 实例 JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结 JS 参考手册

好的,我可以为您生成一本markdown格式的学习文档,主题是JavaScript类学习笔记。

JavaScript 类学习笔记

在JavaScript中,类是一种机制,可以用来创建对象。通过类,我们可以定义对象的属性和方法,以及它们之间的关系。

基本语法

在JavaScript中,我们可以使用关键字class来定义一个类,并使用constructor函数来初始化对象的属性。下面是一个简单的例子:

javascriptCopy Code
class Person { constructor(name, age) { this.name = name; this.age = age; } greeting() { console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); } } const john = new Person('John', 30); john.greeting(); // 输出:Hello, my name is John and I am 30 years old.

在上面的例子中,我们定义了一个名为Person的类,并在构造函数中初始化了nameage属性。我们还定义了一个名为greeting的方法,它将输出一个问候消息。

要创建一个类的实例,我们可以使用new关键字:

javascriptCopy Code
const john = new Person('John', 30);

继承

JavaScript的类还支持继承。通过继承,我们可以基于现有类创建新类,并具有该类的所有属性和方法。下面是一个简单的继承示例:

javascriptCopy Code
class Animal { constructor(name) { this.name = name; } speak() { console.log(`${this.name} makes a noise.`); } } class Dog extends Animal { speak() { console.log(`${this.name} barks.`); } } const dog = new Dog('Fido'); dog.speak(); // 输出:Fido barks.

在上面的例子中,我们使用关键字extends定义了一个名为Dog的子类,并将其继承自Animal类。我们还重写了Dog类的speak方法。

实例

下面是一个更完整的JavaScript类示例,它定义了一个基础的员工类,并分别创建了两个不同类型的员工实例:

javascriptCopy Code
class Employee { constructor(name, salary) { this.name = name; this.salary = salary; } work() { console.log(`${this.name} is performing their job duties.`); } receivePay() { console.log(`${this.name} received a paycheck for $${this.salary}.`); } } class Programmer extends Employee { constructor(name, salary, language) { super(name, salary); this.language = language; } work() { console.log(`${this.name} is coding in ${this.language}.`); } } class Manager extends Employee { constructor(name, salary, employees) { super(name, salary); this.employees = employees; } work() { console.log(`${this.name} is managing ${this.employees.length} employees.`); } } const programmer = new Programmer('Jane', 100000, 'JavaScript'); programmer.work(); // 输出:Jane is coding in JavaScript. programmer.receivePay(); // 输出:Jane received a paycheck for $100000. const manager = new Manager('John', 150000, [programmer]); manager.work(); // 输出:John is managing 1 employees. manager.receivePay(); // 输出:John received a paycheck for $150000.

在上面的例子中,我们定义了一个名为Employee的基础类,用于表示普通员工。我们还定义了两个子类:ProgrammerManager

Programmer类具有一个附加属性language,用于表示该程序员使用的编程语言。Manager类具有一个附加属性employees,它是一个数组,包含该经理管理的所有员工。

最后,我们创建了一个名为programmerProgrammer类实例和一个名为managerManager类实例,并对它们进行了一些简单的操作,例如对其方法进行调用。