跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

javascript中类是什么_如何使用es6类

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免费学习笔记(深入) ”; Eclipse导入Android或其他的JAVA项目的正确方法 WORD版 本文档主要讲述的是Eclipse导入Android或其他的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
基本上就这些。用熟了你会发现,它让原型继承更可读,但底层逻辑一点没变。

相关文章