JavaScript中的类是构造函数的语法糖,基于原型机制,声明即函数,实例方法挂载在prototype上,支持constructor、static、getter/setter等特性。

JavaScript 中的 类(class) 是一种定义对象模板的语法形式,本质是构造函数的语法糖——它不改变底层原型机制,但让面向对象写法更清晰、更接近传统语言(如 Java、C++)的风格。
类就是带语法糖的构造函数
ES6 的 class 内部依然基于原型(prototype)工作。声明一个类,等同于定义一个函数;用 new 实例化,和调用构造函数完全一致:
typeof MyClass 返回 "function" MyClass === MyClass.prototype.constructor 为 true 所有实例方法都自动挂载在 MyClass.prototype 上
基本写法与 constructor
类必须用 class 关键字声明,至少隐式或显式包含一个 constructor 方法:
不写 constructor,系统会自动添加空的 constructor() {} 构造函数用于初始化实例属性,this 指向新创建的实例 类内部默认启用严格模式,无需手动写 "use strict"
示例:
立即学习“Java免费学习笔记(深入)”;
class Person { constructor(name, age) { this.name = name; this.age = age; } greet() { return `Hello, I'm ${this.name}`; }}const p = new Person('Alice', 25);p.greet(); // "Hello, I'm Alice"
类中常用功能怎么写
除了基础结构,ES6 类支持多种实用特性:
静态方法:用 static 声明,只能通过类名调用,不能被实例访问 getter/setter:用 get 和 set 定义计算属性或带校验的赋值逻辑 不可枚举性:类中定义的方法不会出现在 for...in 或 Object.keys() 中 无变量提升:必须先声明类,再使用,否则报 ReferenceError
例如带校验的 setter:
class User { constructor(name) { this._name = name; } get name() { return this._name.toUpperCase(); } set name(value) { if (value.length < 2) throw new Error('Name too short'); this._name = value; }}
注意几个关键限制
类不是万能的,有几条硬性规则要遵守:
必须用 new 调用,直接执行会报错:MyClass() ❌ 类声明不会被提升,顺序很重要 不能用 function 关键字写方法体,也不用逗号分隔方法 类内部不能定义普通变量(如 let x = 1),只能写方法、constructor、static、get/set
基本上就这些。用熟了你会发现,它让原型继承更可读,但底层逻辑一点没变。
以上就是javascript中类是什么_如何使用es6类的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1544006.html
微信扫一扫
支付宝扫一扫