面向对象模式和继承

1.面向对象特点

  • 封装:隐藏对象的属性和实现细节,仅对外公开接口
  • 继承:通过继承,我们可以非常优雅地实现对现有代码的重用
  • 多态:不同对象通过相同的方法调用实现各自行为的能力,称之为多态

2.构造函数与普通函数区别

  1. 用new关键字调用
  2. 函数内部使用this关键字
  3. 默认不用return返回值
  4. 函数命名建议首字母大写,方便与普通函数区分

3.数据属性

  • Configurable:表示能否通过delete删除属性从而重新定义属性
  • Enumerable:表示能否通过for-in循返回属性
  • Writable:表示能否修改属性的值
  • Value:包含这个属性的数据值

4.访问器属性

  • Configurable:表示能否通过delete删除属性从而重新定义属性
  • Enumerable:表示能否通过for-in循返回属性
  • Get:在读取属性值时调用的函数
  • Set:在写入属性值时调用的函数

5.创建对象模式

  • 工厂模式:解决代码重复问题
  • 构造函数模式:解决从原型对象生成实例的问题
  • 原型模式:解决内存浪费问题
  • 组合构造函数模式和原型模式:集两种模式之长
  • 动态原型模式:在构造函数中初始化原型
  • 寄生构造函数模式:在特殊情况下,用来为对象创建构造函数
  • 稳妥构造函数模式:禁止使用this和new,更安全

6.运算符和方法

  • instanceof运算符:验证原型对象与实例对象之间的关系
  • isPrototypeOf方法:用来判断某个proptotype对象和某个实例之间的关系
  • hasOwnProperty方法:用来判断某一个属性是本地属性,还是继承自prototype对象的属性
  • in运算符:用来判断某个实例是否含有某个属性,还可以用来遍历某个对象的所有属性

7.call与apply

  • 用途:改变this的指向,将函数绑定到另外一个对象上去运行
  • 第一个参数都必须有且是一个对象
  • 定义参数方式不同,后者的第二个参数是arguments

8.继承

  • 原型链继承:利用原型让一个引用类型继承另一个引用类型的属性和方法
  • 借用构造函数继承:在子类型构造函数的内部调用超类型构造函数
  • 组合继承:集二者之长
  • 原型式继承:借助原型并基于已有的对象创建新对象,不用创建自定义类型
  • 寄生式继承:创建一个仅用于封装继承过程的函数
  • 寄生组合式继承:解决两次调用的问题

你可能感兴趣的:(面向对象模式和继承)