js对象篇(复习巩固笔记)

复习了面向对象的基本概念,以及如何自定义对象、如何使用内置对象、如何进行错误处理与代码调试、如何理解JavaScript中的原型与继承。温故而知新。

在 js 中,对象是属性和方法的集合,变量只能保存单一数据,对象则可以保存多种数据。
• 类:我们善于将事物进行分类,类是一个抽象的概念
• 对象:具体的事物
– 猫是一类
– 波斯猫 对象
• 类是对象的抽象,对象是类的具体事例
• 类不占用内存,对象占用内存空间

一、面向对象概述

1.面向过程与面向对象

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

2.面向对象的特征

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

二、自定义对象

1.对象的定义

在这里插入图片描述

json(JavaScript Object Notation),是一种轻量级的数据交换格式。它基于 js 对象的格式,以 key:value 格式存储数据,独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

• json 的 key必须是字符串,需要用双引号
• json 的 value可以是数字、字符串、数组、对象
• 数据由 , 分隔,最后一项数据后不能有 , 号
• 字符串类型的值必须使用双引号

2.访问对象成员

在这里插入图片描述

3.对象成员遍历

– 语法: for…in 循环
– 多用于遍历 json
在这里插入图片描述

4.深拷贝与浅拷贝

在这里插入图片描述
深拷贝:将数据的所有引用结构都拷贝一份,数据在内存中独立。
浅拷贝:只针对当前对象的属性进行拷贝(浅拷贝可以节省内存开销)。

在这里插入图片描述

三、构造函数

在这里插入图片描述

1.工厂函数(模式)

在这里插入图片描述

2.JS内置的构造函数

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

3.自定义构造函数

(1)构造函数的命名推荐采用帕斯卡命名规则,即所有的单词首字母大写。
(2)在构造函数内部,使用this来表示刚刚创建的对象。在这里插入图片描述

4.私有成员

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

5.函数中的 this 指向

(1)分析this指向
在JavaScript中,函数内的this指向通常与以下3种情况有关。
①new关键字将函数作为构造函数调用时,构造函数内部的this指向新创建的对象。
②直接通过函数名调用函数时,this指向全局对象(浏览器中表示window对象)。
③如果将函数作为对象的方法调用,this将会指向该对象。在这里插入图片描述
(2)更改this指向
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

四、内置对象

在这里插入图片描述

1.String对象

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

2.Number对象

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

3.Math对象

Math对象用于对数值进行数学运算,与其他对象不同的是,该对象不是一个构造函数,不需要实例化就能使用。
在这里插入图片描述在这里插入图片描述
公式:Math.random()*(max-min)+min,表示生成大于或等于min且小于max的随机值。
在这里插入图片描述

4.Date对象

在这里插入图片描述在这里插入图片描述在这里插入图片描述注意:setDay(这个真没有!!!!,星期是通过设定日期自动计算的 )

五、错误处理与代码调试

1.错误处理

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

注意:如果try中有多行代码,只要其中一行出现错误,后面的代码都不会执行;如果错误已经被处理,则catch后面的代码会继续执行。由此可见,编写在try中的代码量应尽可能的少,从而避免错误发生时造成的影响。 在以Java为代表的编程语言中,引入了异常(Exception)的概念,利用try…catch进行异常处理。JavaScript错误处理的设计思想与之类似,因此也可以将JavaScript中的try…catch称为异常处理。

2.错误对象

在这里插入图片描述
(1)错误对象的传递
在这里插入图片描述在这里插入图片描述
(2)手动抛出错误对象
在这里插入图片描述

3.错误类型

在这里插入图片描述

4.代码调试

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

六、原型与继承

1.原型

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

2.继承

在这里插入图片描述
(1)利用原型对象实现继承
在这里插入图片描述
(2)替换原型对象实现继承
在这里插入图片描述

注意:在基于构造函数创建对象时,代码应写在替换原型对象之后,否则创建的对象仍然会继承原来的原型对象。

(3)利用Objext.create()实现继承
在这里插入图片描述
(4)混入继承
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.静态成员

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

实际开发中,对于不需要创建对象即可访问的成员,推荐将其保存为静态成员。举例:构造函数的prototype属性就是一个静态成员,可以在所有实例对象中共享数据。

4.属性搜索原则

当对象访问某一个属性的时候,首先会在当前对象中搜索是否包含该成员,如果包含则使用,如果不包含,就会自动在其原型对象中查找是否有这个成员,这就是属性搜索原则。
在这里插入图片描述在这里插入图片描述

5.原型链

概念:在JavaScript中,对象有原型对象,原型对象也有原型对象,这就形成了一个链式结构,简称原型链。
在这里插入图片描述
(1)对象的构造函数
在这里插入图片描述
(2)对象的原型对象在这里插入图片描述
(3)函数的构造函数
在这里插入图片描述在这里插入图片描述

用户还可以通过实例化Function构造函数的方式来创建函数。该构造函数的参数数量是不固定的,最后一个参数表示用字符串保存的新创建函数的函数体,前面的参数(数量不固定)表示新创建函数的参数名称。

在这里插入图片描述

(4)原型对象的原型对象
对象.constructor.prototype,可访问对象的原型对象。构造函数的prototype属性指向原型对象,原型对象的constructor属性又指回了构造函数,这就构成了一个循环。
结论:通过这种方式无法访问到原型对象的原型对象。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
(5)原型链的结构
在这里插入图片描述在这里插入图片描述

脚下留心:在进行原型操作时,“对象.constructor.prototype”访问到的是该对象当前继承的原型对象的构造函数的原型对象,并不一定是实际构造函数的原型对象。在这里插入图片描述
多学一招:instanceof 运算符
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
上一篇 >>> js函数篇
下一篇 >>> BOM对象与DOM对象

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值