彻底搞懂JavaScript 之 ES6新特性class(类)
其实很容易理解这个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(类)相关推荐
- JavaScript基础: ES6新特性---Symbol
简介 在ES6中引入的一种新的基本数据类型Symbol.这个类型不像是number或者String让人使用起来那样顺手好理解,为什么是这样呢?是不是因为其是新特性,所以不熟是正常的? 自然不是因为箭头 ...
- es6新特性------学好类(class)这一篇就够了
文章目录 类和构造函数 省略构造函数 继承 封装 类和构造函数 你可以使用 class 关键字声明一个类.下面是关于 Person 类的一个声明: class Person {name;constru ...
- javascript ES6 新特性之 扩展运算符 三个点 ...
对于 ES6 新特性中的 ... 可以简单的理解为下面一句话就可以了: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中. 作用类似于 Object.assign() ...
- 带你一文读懂Javascript中ES6的Symbol
带你一文读懂Javascript中ES6的Symbol 前言 基础类型 Symbol Symbol.for 与 Symbol.keyFor Symbol.iterator Symbol.search ...
- H5、CSS3和ES6新特性
CSS3新特性 01 新增语义化标签 <header>:头部标签 <nav>:导航标签 <article>:内容标签 <section>:定义文档某个区 ...
- ES6新特性之了解ES6以及其发展历史
ES6 新特性 现在使用主流的前端框架中,如ReactJS.Vue.js.angularjs等,都会使用到ES6的新特性,作为一名高级工程师而言,ES6也就成为了必修课,所以本套课程先以ES6的新特性 ...
- 五个小例子教你搞懂 JavaScript 作用域问题
原文:五个小例子教你搞懂 JavaScript 作用域问题 众所周知,JavaScript 的作用域和其他传统语言(类C)差别比较大,掌握并熟练运用JavaScript 的作用域知识,不仅有利于我们阅 ...
- es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构
往期回顾: 前端开发必备 - ES6 新特性之 let 和 const 命令 前端开发必备 - ES6 新特性之 变量的解构赋值 前端开发必备 - ES6 新特性之 字符串的拓展 前端开发必备 - E ...
- html5 跳转参数不显示_HTML5、CSS3、ES6新特性总结
前言:HTML5.CSS3.ES6新特性,可以说是基础前端的面试的必考题了,以下是关于新特性的基本总结. HTML5: 语义化的区块和段落元素:<section>,<article& ...
- 尚硅谷es6新特性笔记
尚硅谷es6新特性笔记 一.let与const let的变量声明以及声明特性 const的变量声明以及声明特性 const.let.var 三者之间的区别 二.变量解构赋值 三.模板字符串 四.对象的 ...
最新文章
- 她是985高校的90后博导!常被认成“师姐”,喜欢减压式教学
- MySQL(mysql 5.7)用户密码的管理
- apache 编译支持php_apache2 不支持php文件 解决办法(示例代码)
- c++继承中的构造和析构
- eclipse查看jar包中class的中文注释乱码问题的解决
- [机器学习] 常用并行计算算子原理
- CVPR19 Oral 如何避免高置信度的错误预测?
- 协程 vs 线程 demo
- 深入理解kafka_深入理解Kafka随书代码示例已整理完毕,附地址~
- Progressive Web App:模仿原生应用的Web应用
- 无线传感器网络中的MAC协议
- EC6110M/T-Q21A/C/E-EC6108V9/V9C/V9U/V9A/V9E/V9I/V92/V97-V9C悦me/CA全系列包
- echarts地图api series_使用echarts结合百度地图API做迁徙图
- winword.exe应用程序错误0xc0000142
- 神州信息与北京市地方金融监督管理局、房山区人民政府签署战略合作
- 机器学习 —— 周志华
- 深富策略:罕见巨额成交量背后蕴含深意
- IOG交互软件---Intelligent Pixel Annotation Tool (IPAT)---安装说明
- net472无法建立到信任_亲密关系的建立,就六个字
- led手电筒烧灯珠_浅谈务优LED手电筒灯珠型号与区别技巧