大白话解释js的class
1. 它到底是啥?(大白话)
在没有 class 之前,你想造一堆类似的东西(比如好几个学生信息),得复制粘贴代码,很麻烦。class 就是一张模板图纸。
-
图纸(class):规定好这个对象“长什么样”(有什么属性),会“干什么活”(有什么方法)。
-
实物(实例):根据这张图纸,用
new机器“咔咔”生产出来的具体对象。
核心记忆:class 不是实物,它只是一张设计图。你得用它“盖”出房子(对象)才能住进去。
2. 怎么用?(拆解成三步)
第一步:画图纸(定义一个类)
用 class 关键字,里面最特殊的是 constructor(构造函数),它是“初始化器”——也就是当你在生产实物时,它第一个跑起来,帮你把东西摆好。
第二步:照着图纸造实物(实例化)
用 new 关键字,把参数传进去,一个活生生的对象就出来了。
let stu1 = new Student('小明', 18); let stu2 = new Student('小红', 19); console.log(stu1.name); // 输出:小明 stu2.study(); // 输出:小红 正在努力学习!
第三步:继承(孩子继承爹的遗产)
这是 class 最牛的地方。如果你觉得“大学生”和“小学生”都是“学生”,但大学生多了一个“写论文”的功能,你可以直接用 extends 继承,不用重写一遍名字和年龄的逻辑。
// 大学生 继承 学生 class CollegeStudent extends Student { constructor(name, age, major) { super(name, age); // super() 就是调用爹的构造函数,把名字和年龄交给爹去处理 this.major = major; // 自己独有的属性 } // 自己独有的方法 writeThesis() { console.log(`${this.name} 正在写关于${this.major}的论文`); } // 也可以覆盖爹的方法(重写) study() { console.log(`${this.name} 在图书馆卷学习`); } } let stu3 = new CollegeStudent('大张', 22, '计算机'); stu3.study(); // 输出:大张 在图书馆卷学习(覆盖了爹的) stu3.writeThesis(); // 输出:大张 正在写关于计算机的论文
3. 三个让你少走弯路的提醒(必看)
-
class只是“语法糖”
说白了,JS 底层并没有引入什么全新的“面向对象机制”,它本质上还是函数和原型链。class只是把原来复杂难懂的写法,包装得像 Java/C++ 一样好看、好理解。你不能把 class 当作普通对象直接使用,必须new。 -
千万别忘了
new
如果你写成let stu = Student('小明', 18)(不带 new),程序会报错Class constructor Student cannot be invoked without 'new'。这就好比你拿着图纸当房子住,肯定要塌。 -
方法定义不加逗号
在class里面写方法(如study() {}),方法与方法之间不用加逗号,,直接挨着写就行。加逗号会报语法错误(这是和 JSON 对象最大的区别)。
总结一句顺口溜:
class 是张设计图,new 一下造事物;constructor 搞初始化,extends 继承少走路;别忘 super 调父类,方法之间没逗号。

浙公网安备 33010602011771号