ES6的class

ES6 的类,可以看作构造函数的另一种写法。

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

Parent.prototype.toString = function() {
  return `this is ${this.name}`
}

let parent = new Parent('zhangsan') 
console.log(parent.toString())  // this is zhangsan
javascript 复制代码
class Parent {
    constructor(name) {
      this.name = name
    }
    
    toString() {
      return `this is ${this.name}`
    }
}

let parent = new Parent('zhangsan')
console.log(parent.toString())  // this is zhangsan

typeof Parent // "function"
Parent === Parent.prototype.constructor  // true

类的数据类型就是函数,类本身就指向构造函数。

构造函数的prototype属性在ES6的类上面继续存在,定义在类内部的函数相当于定义在类的prototype属性上,prototype对象的constructor属性,直接指向"类"的本身, 但类内部定义的方法不能枚举

在一个方法前,加上static 关键字,表示该方法不会被实例继承 ,而是直接通过类来调用 ,这就称为**"静态方法"**,静态方法包含this关键字,this指的是类,而不是实例

相关推荐
fhsWar2 小时前
Vue3 props: `required: true` 与 vant 的`makeRequiredProp`
前端·javascript·vue.js
Keepreal4963 小时前
Web Components简介及如何使用
前端·javascript·html
进击的野人3 小时前
JavaScript变量声明的前世今生:从var到let/const的演进
javascript
柯腾啊4 小时前
“Script error.”的产生原因和解决办法
前端·javascript·浏览器
Cory.眼5 小时前
WebRTC入门指南:实时通信零基础
javascript·webrtc·实时通信
前端架构师-老李5 小时前
16 Electron 应用自动更新方案:electron-updater 完整指南
前端·javascript·electron
拖拉斯旋风6 小时前
📚 JavaScript 变量声明三剑客:`var`、`let`、`const` 学习笔记
javascript
可触的未来,发芽的智生7 小时前
追根索源:换不同的词嵌入(词向量生成方式不同,但词与词关系接近),会出现什么结果?
javascript·人工智能·python·神经网络·自然语言处理
努力写代码的熊大8 小时前
stack、queue与priority_queue的用法解析与模拟实现
java·前端·javascript
im_AMBER8 小时前
React 06
前端·javascript·笔记·学习·react.js·前端框架