美文网首页
面向对象模式和继承

面向对象模式和继承

作者: 馋中解禅 | 来源:发表于2017-05-08 11:03 被阅读0次

    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.继承

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

    相关文章

      网友评论

          本文标题:面向对象模式和继承

          本文链接:https://www.haomeiwen.com/subject/dahmtxtx.html