对比一下

基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。上面的代码用 ES6 的class改写 就是第一个那样

上面代码定义了一个“类”,可以看到里面有一个constructor方法,这就是构造方法,而this关键字则代表实例对象。也就是说,ES5 的构造函数Point,对应 ES6 的Point类的构造方法。

Point类除了构造方法,还定义了一个toString方法。注意,定义“类”的方法的时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了。另外,方法之间不需要逗号分隔,加了会报错。

使用的时候,也是直接对类使用new命令,跟构造函数的用法完全一致。

class Bar {

doStuff() {

console.log('stuff');

}

}

var b = new Bar();

b.doStuff() // "stuff"

其实就是调用原型上的方法。

| `class B {}

let b = new B();

b.constructor === B.prototype.constructor // true`| |

上面代码中,b是B类的实例,它的constructor方法就是B类原型的constructor方法。

constructor 方法

constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个空的constructor方法会被默认添加。

class Point {

}

// 等同于

class Point {

constructor() {}

}

上面代码中,定义了一个空的类Point,JavaScript 引擎会自动为它添加一个空的constructor方法。

constructor方法默认返回实例对象(即this),完全可以指定返回另外一个对象。

class Foo {

constructor() {

return Object.create(null);

}

}

new Foo() instanceof Foo

es6在原生代码的用法_原生JavaScript之es6中Class的用法分析相关推荐

  1. 说出vue中的几种指令和他的用法_说一说VUE中的/deep/用法

    七夕了,写个昨天遇到的bug来缓解下没有人约的尴尬. 昨天和QA过历史bug时,发现有好几个浏览器不兼容的导致式样变形的bug,调查了一番发现是因为deep选择器的原因. 在说bug之前,先看看vue ...

  2. vue 中provide的用法_说一说VUE中的/deep/用法

    七夕了,写个昨天遇到的bug来缓解下没有人约的尴尬. 昨天和QA过历史bug时,发现有好几个浏览器不兼容的导致式样变形的bug,调查了一番发现是因为deep选择器的原因. 在说bug之前,先看看vue ...

  3. mysql中show的用法_完全解析MySQL数据库中Show命令用法

    show命令的众多用法如下: a. show tables或show tables from database_name; - 显示当前数据库中所有表的名称. b. show databases; - ...

  4. mysql with as 用法_英语语法丨英语中just的用法总结,你掌握了吗?

    just在英语中是一个重要的单词,它的使用方法很多样. 今天,这篇文章可以帮你正确使用这个英语中的关键词! 一.just作为时间表达1.Just = Recently 最近 just常被用来表达,某事 ...

  5. JavaScript在HTML中的基础用法总结

    网页主要由三部分组成,分别为HTML.CSS和Javascript.如果说HTML是肉身,CSS是皮相,那Javascript就是灵魂.因此,三者的联系与融合则至关重要.本文就来为大家讲解一下Java ...

  6. java中trim函数用法_深入理解jQuery.trim() 函数及trim()用法

    jQuery.trim() 函数及trim()用法详解 jQuery.trim()函数用于去除字符串两端的空白字符.该函数可以去除字符串开始和末尾两端的空白字符(直到遇到第一个非空白字符串为止).它会 ...

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

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

  8. 一个普通it人的十年回顾_十年高考试题中的it用法解析

    在高考单项填空试题的选项中,it是出现频率较高的词汇之一.下面针对近十年高考中涉及到it的题目进行分类解析: 一. 作为正确项的it 1. I like ________ in the autumn ...

  9. ctf 文件头crc错误_[CTF隐写]png中CRC检验错误的分析

    [CTF隐写]png中CRC检验错误的分析 最近接连碰到了3道关于png中CRC检验错误的隐写题,查阅了相关资料后学到了不少姿势,在这里做一个总结 题目来源: bugku-MISC-隐写2 bugku ...

  10. css如何调整红心样式_在JavaScript应用程序中包含CSS的多种方法「渡一」

    原文链接:https://css-tricks.com/the-many-ways-to-include-css-in-javascript-applications/,作者:Dominic Magn ...

最新文章

  1. MVC 3 登录、注销
  2. 从扁鹊医术看华为数据中心智能化运维之道
  3. keras中文文档_【DL项目实战02】图像识别分类——Keras框架+卷积神经网络CNN(使用VGGNet)
  4. android和java中常见 Exception
  5. HTML5在线编辑器Wysihtml5之Bootstrap扩展
  6. 传统JDBC的弊病和mybatis的解决方案
  7. datepicker不能选择是为什么_为什么婚车不能倒退 婚车不能走回头路吗
  8. 虚拟仿真港珠澳大桥,大湾区综合管理信息系统
  9. 使用DSP28335控制三相三电平PWM整流器-软启动
  10. DNS地址,DNS服务器作用
  11. 跨域 SameSite secure
  12. 战舰世界选服务器删除什么文件夹,《战舰世界》常见问题解决方案合集
  13. 茎叶图、箱图是什么,如何用SPSS实现?(图文)
  14. php原生检测用户,php代码在线测试_php检测用户在线状态的实例代码
  15. 12、Urban Radiance Fields
  16. processing实现图像碎片化
  17. java 修饰符 详解,详解Java修饰符
  18. 计算机基础知识1000题,计算机基础知识题库1000道,这一千道题比较好.doc
  19. linux 文件夹 775,linux - 如何为文件夹及其所有子文件夹和文件设置chmod?
  20. openlayers3教程详细_OpenLayers 3 入门教程

热门文章

  1. confluent community 体验
  2. 2012值得期待的电影(部部经典)
  3. Java求三个数的最小公倍数算法改进(化境)
  4. 张一刻12个适合打造个人品牌IP的自媒体平台
  5. python 作品 中学生_中学生Python创意编程
  6. 缺少控制文件导致数据库无法启动
  7. 探索FAKE,一个适用于所有.NET的F#构建系统
  8. 视觉SLAM总结,PNP:利用3D-2D点估计相机运动
  9. 利用Arduino Mega的Analog端口无法驱动L298N电机芯片的解释
  10. 力扣题库设计循环队列