其实很容易理解这个class,它就是ES5的构造函数进化而来的。

ES5构造函数

// ES5
function Person(name, age) {this.name = namethis.age = agethis.sing = function(musicName) {consloe.log("musicName", musicName);}
}const person = new Person('刘德华', 22)
console.log(person.name)  // 刘德华
console.log(person.age)  // 22
person.sing('开心的马骝') // 开心的马骝

ES6---class(类)

// ES6
class Stack {constructor(name, age) {this.name = name;this.age = age;this.arr = [];}in(value) {this.arr.push(value);}top() {console.log(this.arr[0]);}out() {console.log(this.arr.shift());}size() {console.log(this.arr.length);}
}const obj = new Stack();obj.in('x') obj.in('y')obj.in('z')obj.top() // Zobj.size() // 3obj.out() // Zobj.top() // yobj.size() // 2

对比之后你不难发现,其实就是把ES5的Person(name, age)抽到ES6的constructor(name, age){}函数中。构造函数中除了属性为函数之外的属性都放到constructor函数中去定义。悟:ES6class中constructor()方法就是new一个实例需要传的参数,也可以传函数作为参数。

构造函数

class类

然后构造函数中定义的方法,直接以funcName(){}的方式写到class中。改良了写法而已

构造函数

class类

彻底搞懂JavaScript 之 ES6新特性class(类)相关推荐

  1. JavaScript基础: ES6新特性---Symbol

    简介 在ES6中引入的一种新的基本数据类型Symbol.这个类型不像是number或者String让人使用起来那样顺手好理解,为什么是这样呢?是不是因为其是新特性,所以不熟是正常的? 自然不是因为箭头 ...

  2. es6新特性------学好类(class)这一篇就够了

    文章目录 类和构造函数 省略构造函数 继承 封装 类和构造函数 你可以使用 class 关键字声明一个类.下面是关于 Person 类的一个声明: class Person {name;constru ...

  3. javascript ES6 新特性之 扩展运算符 三个点 ...

    对于 ES6 新特性中的 ... 可以简单的理解为下面一句话就可以了: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中. 作用类似于 Object.assign() ...

  4. 带你一文读懂Javascript中ES6的Symbol

    带你一文读懂Javascript中ES6的Symbol 前言 基础类型 Symbol Symbol.for 与 Symbol.keyFor Symbol.iterator Symbol.search ...

  5. H5、CSS3和ES6新特性

    CSS3新特性 01 新增语义化标签 <header>:头部标签 <nav>:导航标签 <article>:内容标签 <section>:定义文档某个区 ...

  6. ES6新特性之了解ES6以及其发展历史

    ES6 新特性 现在使用主流的前端框架中,如ReactJS.Vue.js.angularjs等,都会使用到ES6的新特性,作为一名高级工程师而言,ES6也就成为了必修课,所以本套课程先以ES6的新特性 ...

  7. 五个小例子教你搞懂 JavaScript 作用域问题

    原文:五个小例子教你搞懂 JavaScript 作用域问题 众所周知,JavaScript 的作用域和其他传统语言(类C)差别比较大,掌握并熟练运用JavaScript 的作用域知识,不仅有利于我们阅 ...

  8. es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构

    往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...

  9. html5 跳转参数不显示_HTML5、CSS3、ES6新特性总结

    前言:HTML5.CSS3.ES6新特性,可以说是基础前端的面试的必考题了,以下是关于新特性的基本总结. HTML5: 语义化的区块和段落元素:<section>,<article& ...

  10. 尚硅谷es6新特性笔记

    尚硅谷es6新特性笔记 一.let与const let的变量声明以及声明特性 const的变量声明以及声明特性 const.let.var 三者之间的区别 二.变量解构赋值 三.模板字符串 四.对象的 ...

最新文章

  1. 她是985高校的90后博导!常被认成“师姐”,喜欢减压式教学
  2. MySQL(mysql 5.7)用户密码的管理
  3. apache 编译支持php_apache2 不支持php文件 解决办法(示例代码)
  4. c++继承中的构造和析构
  5. eclipse查看jar包中class的中文注释乱码问题的解决
  6. [机器学习] 常用并行计算算子原理
  7. CVPR19 Oral 如何避免高置信度的错误预测?
  8. 协程 vs 线程 demo
  9. 深入理解kafka_深入理解Kafka随书代码示例已整理完毕,附地址~
  10. Progressive Web App:模仿原生应用的Web应用
  11. 无线传感器网络中的MAC协议
  12. EC6110M/T-Q21A/C/E-EC6108V9/V9C/V9U/V9A/V9E/V9I/V92/V97-V9C悦me/CA全系列包
  13. echarts地图api series_使用echarts结合百度地图API做迁徙图
  14. winword.exe应用程序错误0xc0000142
  15. 神州信息与北京市地方金融监督管理局、房山区人民政府签署战略合作
  16. 机器学习 —— 周志华
  17. 深富策略:罕见巨额成交量背后蕴含深意
  18. IOG交互软件---Intelligent Pixel Annotation Tool (IPAT)---安装说明
  19. net472无法建立到信任_亲密关系的建立,就六个字
  20. led手电筒烧灯珠_浅谈务优LED手电筒灯珠型号与区别技巧

热门文章

  1. 2021-1-4 看了哈默的视频,理解的nodejs
  2. Maixll-Dock 数字识别
  3. SEO思维赚钱模式解读-海瑶SEO学堂
  4. c语言设计教师登录系统,C语言课程设计教师信息管理系统
  5. ARM中MAM使用注意事项
  6. [IT幽默]解除网瘾的10大招
  7. 融云支持移动电影院探索“观影社交” 创造中国电影新增量
  8. 2019年云计算市场规模将达5706.4亿
  9. 微信小程序的app.js
  10. SIP中的四种状态机:ICT、NICT、IST、NIST