当前位置: 首页 > news >正文

ES6 中的 class 是什么?和函式构造函式差别是什么?

ES6 class

JavaScript 在 ECMAScript 6 (ES6) 之前并没有 class 的语法,而是会透过函式构造函式建立物件,并再通过 new 关键字实例。

在 ES6 时引入了 class 的概念,JavaScript class 使用的语法 class 似于其他 OOP 程式语言中的 class,但 JavaScript 的 class 是一种语法糖,本质上与其他程式语言 class 的实践方式不一样,JavaScript 的 class 是透过原型继承来模拟 class 的行为。以下方代码为例:

class Car {constructor(brand, model) {this.brand = brand;this.model = model;}drive() {console.log(`Driving a ${this.brand} ${this.model}`);}
}const myCar = new Car("Tesla", "Model 3");
myCar.drive(); // Driving a Tesla Model 3

上方代码是 ES6 的写法,但在 ES6 之前,我们会透过函式实践相同功能

function Car(brand, model) {this.brand = brand;this.model = model;
}Car.prototype.drive = function () {console.log(`Driving a ${this.brand} ${this.model}`);
};const myCar = new Car("Tesla", "Model 3");
myCar.drive(); 

相关文章:

  • 【快捷键】Mac如何打出数学符号和希腊字母
  • 鸿蒙OpenHarmony HDF 驱动开发
  • 安装及管理docker
  • Mac(含M1) 使用 brew 安装nvm
  • Java算法-力扣leetcode-45. 跳跃游戏 II
  • 力扣中档题:删除排序链表中的 重复元素
  • openssl3.2 - exp - PEM <==> DER
  • 物联网云原生云边协同
  • 贪心算法(蓝桥杯 C++ 题目 代表 注解)
  • 孤儿进程、僵尸进程
  • 云计算OpenStack KVM迁移
  • STM32用标准库做定时器定时1秒更新OLED的计数值(Proteus仿真)
  • 【Demo】对话系统
  • 提升外贸企业财务效率!必备功能的财务记账软件推荐!
  • LoadBalancer (本地负载均衡)
  • 【面试系列】之二:关于js原型
  • ES6 ...操作符
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • LeetCode29.两数相除 JavaScript
  • Node项目之评分系统(二)- 数据库设计
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PHP 的 SAPI 是个什么东西
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 对象引论
  • 高性能JavaScript阅读简记(三)
  • 缓存与缓冲
  • 老板让我十分钟上手nx-admin
  • 实现简单的正则表达式引擎
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 小试R空间处理新库sf
  • 学习ES6 变量的解构赋值
  • 原生JS动态加载JS、CSS文件及代码脚本
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • gunicorn工作原理
  • 说说我为什么看好Spring Cloud Alibaba
  • ​iOS安全加固方法及实现
  • ​Java并发新构件之Exchanger
  • #《AI中文版》V3 第 1 章 概述
  • #define,static,const,三种常量的区别
  • $ git push -u origin master 推送到远程库出错
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (04)odoo视图操作
  • (06)金属布线——为半导体注入生命的连接
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (poj1.2.1)1970(筛选法模拟)
  • (Python第六天)文件处理
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (生成器)yield与(迭代器)generator
  • (十) 初识 Docker file
  • (学习日记)2024.01.09