JavaScrip对象及初识面向对象

本文深入探讨了JavaScript的对象概念,包括自定义对象的创建、内置对象的使用,以及构造函数和原型对象的作用。同时,文章详细解析了原型链、借用构造函数和组合继承等继承模式,为读者提供了全面的面向对象编程指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第四章

对象

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

构造函数和原型对象

  • 构造函数
    • 构造函数可用来创建特定类型的对象
    • 语法
      • function 构造函数方法名(【参数列表】){
        • 具体的方法属性
      • }
    • 示例
      在这里插入图片描述
    • 注意
      • 构造函数方法名大写,以此来区分普通方法

原型对象

  • 原理
    • 每一个函数都有一个prototype属性,指向的是原型对象,通过原型对象,可以让
      特定类型的所有实例共享属性和方法
  • 实例
    在这里插入图片描述
    • 概念
      • Flower作为构造函数,拥有prototype属性,指向Flower.prototype,即
        Flower的原型对象,每个原型对象均有constructor指针,指向Flower构造函
        数,每一个Flower实例对象都有一个_proto_指针,指向Flower的原型对象
        在这里插入图片描述

继承

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

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

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

      • 如图
        在这里插入图片描述

      北大青鸟_信狮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值