第四章

对象

  • 回顾数据类型
    • number(数值类型)
    • string(字符串类型)
    • boolean(布尔类型)
    • null(空类型)
    • undefined(未定义类型)
    • object
      • 一种复杂的数据类型,该类型实例化的对象是一组数据和功能的集合
  • 对象的理解
    • 对象是包含相关属性和方法的集合体,而面向对象只是一个概念或编程思想,它不应该依赖于某个语言存在
  • 创建对象
    • 自定义对象
      • 与Java中一样,使用操作符new创建一个object的实例,然后通过“.”为其添加属性和方法
      • 语法
        • var 对象名称 = new Object();
      • 示例
        JavaScrip对象及初识面向对象
    • 内置对象
      • JavaScript的内置对象是一种特殊数据
      • 常见的内置对象:
        • String(字符串)对象
        • Date(日期)对象
        • Array(数组)对象
        • Boolean(逻辑)对象
        • Math(算数)对象
        • RegExp(正则表达式)对象

构造函数和原型对象

  • 构造函数
    • 构造函数可用来创建特定类型的对象
    • 语法
      • function 构造函数方法名(【参数列表】){
        • 具体的方法属性
      • }
    • 示例
      JavaScrip对象及初识面向对象
    • 注意
      • 构造函数方法名大写,以此来区分普通方法

原型对象

  • 原理
    • 每一个函数都有一个prototype属性,指向的是原型对象,通过原型对象,可以让
      特定类型的所有实例共享属性和方法
  • 实例
    JavaScrip对象及初识面向对象
    • 概念
      • Flower作为构造函数,拥有prototype属性,指向Flower.prototype,即
        Flower的原型对象,每个原型对象均有constructor指针,指向Flower构造函
        数,每一个Flower实例对象都有一个_proto_指针,指向Flower的原型对象
        JavaScrip对象及初识面向对象

继承

  • 原型链
    • 概念
      • 一个原型对象是另一个原型对象的实例,相关的原型对象层层递进,就构成了实例与原型的链条,就是原型链
    • 案例图
      • 如图,举例,如猫既是原型对象,也是实例,只是选择的参照物不同。相对于黑猫而言,猫是黑猫的原型对象;相对于哺乳动物而言,猫是哺乳动物的实例
        JavaScrip对象及初识面向对象
  • 原型链图
    • 分析:
      • man1作为实例,拥有_proto_指针,指向Man的原型对象;Man的构造函数有prototype指针,指向Man的原型对象;
      • Man的原型对象以Human的实例作为原型,因而具有_proto_指针,指向Humans的原型对象
      • Humans的构造函数有prototype指针,指向Humans的原型对象;Humans的原型对象有constructor指针,指向Humans构造函数
        • 如图
          JavaScrip对象及初识面向对象
    • 借用构造函数
      • 解决原型链模型下,所有对象共用同一份属性的问题
      • 语法
        • 方法1:apply([thisOjb[,argArray]])
        • 方法2:call([thisObj[,arg1[,arg2[, [,argN]]]]])
        • 方法描述均为:应用某一对象的一个方法,用另一个对象替换当前对象
        • 语法案例
          • 案例1:借用父类无参构造函数
          • 如图
            JavaScrip对象及初识面向对象
          • 案例2:借用父类有参构造函数
          • 如图
            JavaScrip对象及初识面向对象
  • 组合继承(核心)
    • 概念

      • 将原型链和借用构造函数的技术组合到一块,发挥二者之长的一种继承模式
    • 原理

      • 使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性继承
    • 案例

      • 如图
        JavaScrip对象及初识面向对象

      北大青鸟_信狮

相关文章: