ES6 class 类

普通使用原型添加方法

javascript 复制代码
function Animal(name) {
  this.name = name;
}

Animal.prototype.speak = function() {
  console.log(this.name + ' makes a noise.');
};

function Dog(name) {
  Animal.call(this, name);
}

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

Dog.prototype.speak = function() {
  console.log(this.name + ' barks.');
};

const dog = new Dog('Rex');
dog.speak(); // 输出:Rex barks.

使用class添加方法

javascript 复制代码
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('Rex');
dog.speak(); // 输出:Rex barks.

对比下来,不难发现class类添加方法代码更加易懂,易读,也有好的继承特性,后续更加容易维护;

注意事项:

  1. 类并不会被提升;(意味着在代码执行之前,类声明不会被移动到作用域的顶部。这与传统的函数声明和变量声明不同,它们可以在作用域内被提升。因此,在使用类之前必须先声明类,否则会导致引用错误。)
  2. class 是一等公民(first-class);意味着它们可以像其他值一样被传递和使用。你可以将类赋值给变量,将类作为函数参数传递,从函数中返回类,以及在运行时动态地创建类。这使得类在 JavaScript 中更具灵活性,可以更方便地进行模块化和编程。
  3. 类必须在严格模式下运行,类和里面模块默认必须使用严格模式书写
相关推荐
大家的林语冰9 分钟前
TypeScript 6 官宣,JS “最后之舞“,版本升级踩雷指南
前端·javascript·typescript
英俊潇洒美少年10 分钟前
react useDeferredvalue和useTransition的讲解
前端·react.js·前端框架
爱学习的程序媛15 分钟前
【WebRTC】呼叫中心前端技术选型:SIP.js vs JsSIP vs Verto
前端·javascript·typescript·音视频·webrtc·实时音视频·web
Amumu1213822 分钟前
Js: ES新特性(一)
开发语言·前端·javascript
scofield_gyb22 分钟前
Redis 6.2.7安装配置
前端·数据库·redis
木斯佳29 分钟前
前端八股文面经大全: 蓝色光标前端一面OC(2026-03-23)·面经深度解析
前端·面试·vue·校招·js·面经
2301_7925800029 分钟前
Pyrocko + PSGRN/PSCMP小问题
前端
Highcharts.js42 分钟前
Highcharts for Python|用 Pythonic 的方式构建AI数据可视化图表
前端·人工智能·python·信息可视化·数据科学·highcharts·ai可视化
是罐装可乐44 分钟前
SPA首屏接口过多导致卡顿?一套前端请求调度方案彻底解决
前端·性能优化·spa·前端架构·请求队列
子豪-中国机器人1 小时前
python AI自动化
java·前端·python