1.类的由来

  JavaScript 语言中,生成实例对象的传统方法是通过构造函数,但是这种写法跟传统的面向对象语言差异很大,容易让不熟悉这门语言的程序员感到困惑,下面有一个例子

    

  ES6提供了更接近传统语言的写法,引入了 class(类)这个概念,作为对象的模板,通过class关键字,可以定义类,这种写法只是让对象原型的写法更加清晰,更像面向对象编程的语法,下边这个例子是上边代码的升级版,用ES6的 class 改写

     

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

      

   构造函数的 prototype 属性,在 ES6 的“类”上面继续存在,事实上,类的所有方法都定义在类的prototype睡醒上面

   

2.class 定义类的

  (1)在 class 类上添加的属性都是在原型 prototype 上添加的

  (2)new 实例的时候其实就是调用构造函数这个方法

  (3)类的本质其实就是一个函数

  (4)类中的this 指向实例对象

  (5)添加的私有属性都在构造函数中添加

  (6)每个构造方法都会默认返回实例对象this,如果人为改变 return 返回值,返回基本数据类型 字符串、数字、布尔等,不会改变return this 的值;如果返回应引用数据类型 对象 数组,那么return this 就会失效,返回你返回的结果

  (7)静态方法,在方法名前面加上 static关键字

    那么这个方法,就变成了类的私有方法 就得用 类.方法()

     

  (8)extents 继承

    子类继承父类  使用extents 关键字

    代码块里需要使用 super 关键字

      super 既可以充当函数,也可以充当对象

      1)  充当函数时,只能在子类的构造函数中使用,且必须放在第一行调用。指向父类的构造函数,只有super调用之后,子类才可以使用 this 关键字,指向子类的实例对象

      2)充当对象时,放在普通函数中,super 指向父类的原型 prototype

      3)放在静态方法中 super 执行当前父类本身

  

  

最新文章

  1. 利用DNS Zone Transfers漏洞工具dnswalk
  2. 安装Portal for ArcGIS时如何正确配置HTTPS证书
  3. 第二章:搭建Android开发环境
  4. Debian普通用户获取root权限|sudo的安装与配置
  5. if语句
  6. bs4_3select()
  7. QQ的账号登录及api操作
  8. FOJ 2161 Jason and Number
  9. noip知识点总结之--贪心
  10. poj 2503 Babelfish (查找 map)
  11. 学习C++ Primer 的个人理解(六)
  12. NSURLSessionDownloadTask 断点下载
  13. MySQL - 复制数据表
  14. Android开源库loopj的android-async-http的 JsonHttpResponseHandler 存在死循环GC_CONCURRENT
  15. 关于 plsql连接oracle数据库的问题
  16. 关于Jmeter的简单认识
  17. 团队作业3——alpha阶段冲刺
  18. 【转载】阿里云服务器为网站选配Https证书
  19. java中转译符用"\\"的几种特殊字符
  20. system v ipc的标识符ID

热门文章

  1. 关于Java的 long,float 类型
  2. 名称空间 反向解析 reverse
  3. [bug] Navicat 连 虚拟机MySQL
  4. [Python] 条件 & 循环
  5. [刷题] 437 Paths Sum III
  6. Docker------Idea连接远程并生成和上传镜像
  7. 服务器RAID配置
  8. Python for循环 - Python零基础入门教程
  9. 关于lua闭包导致引用无法释放内存泄露
  10. GO语言常用标准库03---time包