一、闭包和函数

  (一)什么是闭包函数

    概念:简单说就是函数中嵌套函数,嵌套在这里面的函数叫做闭包函数,外面的函数叫做闭包环境

    作用:通过闭包函数,可以访问到闭包函数所在局部作用域中的变量及参数

    特点:闭包的特点或本质:将局部变量常驻内存,这既是它的优点也是它的缺点,使用不当还会造成内存泄漏

    闭包的原理:闭包是利用JS中的垃圾回收机制,当一个函数被调用时,会开辟空间,函数调用结束,会释放空间,但如果被释放空间时,发现其中有变量正在被其他函数使用时,则这个变量会常驻内存而不被回收

二、继承和函数

  (一)构造函数继承

    1、Call/apply 继承

    2、Call 与 apply 的异同:

      1)第一个参数 this 都一样,指当前对象

      2) 第二个参数不一样:call 的是一个个的参数列表;apply 的是一个数组(arguments 也可以)

    3、构造继承特点:

      1)子类实例共享父类引用属性的问题

      2)创建子类实例时,可以向父类传递参数

      3) 可以实现多继承(call 或 apply 多个父类对象)

    4、构造继承缺点:

      1)实例并不是父类的实例,只是子类的实例

      2)只能继承父类的实例属性和方法,不能继承原型属性和方法

      3)无法实现函数复用,每个子类都有父类实例函数的副本,影响性能

  (二)Prototype 的概念

    1、 Javascript 中的每个函数都有 prototype 属性,指向函数的原型对象。每一个对象都有_ _ proto__属性,指向该对象的父对象。

  (三)原型链继承

    1、特点:

      1)非常纯粹的继承关系,实例是子类的实例,也是父类的实例

      2)父类新增原型方法/原型属性,子类都能访问到

      3) 简单,易于实现

    2、缺点:

      1) 要想为子类新增原型属性和方法,必须要在new 父类()这样的语句之后执行。要想为子类新增实例属性和方法,必须要在构造函数中添加。

      2)无法实现多继承

      3)来自原型对象的所有属性被所有实例共享

  (四)混合继承

    1、 特点:

      1)可以继承实例属性和方法,也可以继承原型属性和方法

      2) 既是子类的实例,也是父类的实例

      3) 不存在引用属性的共享问题

      4)可传参

      5)函数可复用

    2、缺点:调用了两次父类构造函数,生成了两份实例

  (五)扩展:寄生组合继承

    1、特点: 完美

最新文章

  1. 常用的Javascript设计模式
  2. linux安装hadoop 1.2.1
  3. hadoop(五): shell命令
  4. junit适配器模式应用
  5. 使用spring.net 1.3.2框架部署在虚拟目录上发生错误
  6. 转载:简单介绍Python中的try和finally和with方法
  7. 如何完美打造Win8 Metro版IE10浏览器页面(转)
  8. Oracle中忘记sys和System密码的办法
  9. 201521123008《Java程序设计》第十二周学习总结
  10. C#常用单词
  11. SQLite 分离数据库(http://www.w3cschool.cc/sqlite/sqlite-detach-database.html)
  12. JavaScript基础视频教程总结(121-130章)
  13. mac xmind 激活
  14. 通用Mapper环境下,mapper接口无法注入问题
  15. STS-创建spring配置文件
  16. pycharm在创建py文件时,自动添加文件头注释
  17. 成都Uber优步司机奖励政策(4月23日)
  18. linux系统/proc/stat信息与top的cup信息的联系及区别
  19. shopxx----权限添加
  20. android studio中使用recyclerview小白篇(三)

热门文章

  1. arcgis api for js入门开发系列二十打印地图的那些事
  2. 好代码是管出来的——.Net Core中的单元测试与代码覆盖率
  3. django连接sqlserver
  4. Linux学习历程——Centos 7 passwd命令
  5. 你的知识需要管理PKM
  6. P1177 【模板】快速排序 题解
  7. EntityFramework Core是否可以映射私有属性呢?了解一下。
  8. RMQ区间最大值与最小值查询
  9. pm2 常用命令解析
  10. centos下安装Vmware-tools时出现的问题