ES5 写法
function Book(title, pages, isbn) {
this.title = title;
this.pages = pages;
this.isbn = isbn;
}
Book.prototype.printTitle = function () {
console.log(this.title);
};
let book = new Book('title', 'pag', 'isbn');
console.log(book.title); //输出图书标题
book.title = 'new title'; //更新图书标题
console.log(book.title); //输出图书标题
用ES6把语法简化如下:
class Book {
constructor (title, pages, isbn) {
this.title = title;
this.pages = pages;
this.isbn = isbn;
}
printIsbn(){
console.log(this.isbn);
}
}
只需要使用class关键字,声明一个有constructor函数和诸如printIsbn等其他函数的
类。声明的代码具有相同的效果和输出:
let book = new Book('title', 'pag', 'isbn');
console.log(book.title); //输出图书标题
book.title = 'new title'; //更新图书标题
console.log(book.title); //输出图书标题
 
 
继承
除了新的声明类的方式,类的继承也有简化的语法。我们看一个例子:
class ITBook extends Book {
constructor (title, pages, isbn, technology) {
super(title, pages, isbn);
this.technology = technology;
}
printTechnology(){
console.log(this.technology);
}
}
let jsBook = new ITBook('学习JS算法', '200', '1234567890', 'JavaScript');
console.log(jsBook.title);
console.log(jsBook.printTechnology());
我们可以用extends关键字扩展一个类并继承它的行为。在构造函数中,我们也
可以通过super关键字引用父类的构造函数
尽管在JavaScript中声明类的新方式的语法与Java、 C、 C++等其他编程语言很类似,但
JavaScript面向对象编程还是基于原型实现的

最新文章

  1. lintcode 75 Find Peak Element
  2. UML中的stereotype
  3. 传智播客C语言视频第一季(有效下载期为10.1-10.7,10.8关闭)
  4. SQL:将查询结果插入到另一个表的三种情况
  5. Centos rpm缺少依赖无法安装mysql5.5
  6. VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布(好像很不错,有六张插图说明)good
  7. php学习之string
  8. 一些精妙的sql语句收集
  9. Hibernate入门----配置文件
  10. windows防火墙实验-命令行设置远程桌面连接以及禁止浏览器上网
  11. 【JavaScript】 使用Async 和 Promise 完美解决回调地狱
  12. MASS批量维护数据
  13. Mysql EF 触发器生成主键id 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项 ;System.Data.Entity.Infrastructure.DbUpdateConcurrencyException
  14. function_exists
  15. MVC基于角色权限控制--权限过滤
  16. 10.C#知识点:操作XML
  17. Python3将两个有序数组合并为一个有序数组
  18. Day 9 作业题(完成)
  19. SQL计算表的列数
  20. 九度 1529:棋盘寻宝(递推DP)

热门文章

  1. 水题Eating Soup
  2. 你了解getBoundingClientRect()?
  3. yii2 password hash生成与验证方法
  4. JDK-13下载安装及环境变量配置
  5. 粪发涂墙-Redis
  6. 国际化支持、activity生命周期、屏幕翻转的ui适配
  7. LaTeX学习资源
  8. tp5 rewrite apache 配置
  9. 科技股 - 5G、芯片、半导体 细分龙头
  10. StatelessWidget 无状态组件 StatefulWidget 有状态组件 页面上绑定数据、改变页面数据