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

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

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

文章目录

      • 一、面向对象概述
        • 1.面向过程与面向对象
        • 2.面向对象的特征
      • 二、自定义对象
        • 1.对象的定义
        • 2.访问对象成员
        • 3.对象成员遍历
        • 4.深拷贝与浅拷贝
      • 三、构造函数
        • 1.工厂函数(模式)
        • 2.JS内置的构造函数
        • 3.自定义构造函数
        • 4.私有成员
        • 5.函数中的 this 指向
      • 四、内置对象
        • 1.String对象
        • 2.Number对象
        • 3.Math对象
        • 4.Date对象
      • 五、错误处理与代码调试
        • 1.错误处理
        • 2.错误对象
        • 3.错误类型
        • 4.代码调试
      • 六、原型与继承
        • 1.原型
        • 2.继承
        • 3.静态成员
        • 4.属性搜索原则
        • 5.原型链

一、面向对象概述

1.面向过程与面向对象

js对象篇(复习巩固笔记)_第1张图片
js对象篇(复习巩固笔记)_第2张图片
js对象篇(复习巩固笔记)_第3张图片

2.面向对象的特征

js对象篇(复习巩固笔记)_第4张图片js对象篇(复习巩固笔记)_第5张图片在这里插入图片描述
js对象篇(复习巩固笔记)_第6张图片js对象篇(复习巩固笔记)_第7张图片
js对象篇(复习巩固笔记)_第8张图片js对象篇(复习巩固笔记)_第9张图片js对象篇(复习巩固笔记)_第10张图片

二、自定义对象

1.对象的定义

js对象篇(复习巩固笔记)_第11张图片

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

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

2.访问对象成员

js对象篇(复习巩固笔记)_第12张图片

3.对象成员遍历

– 语法: for…in 循环
– 多用于遍历 json
js对象篇(复习巩固笔记)_第13张图片

4.深拷贝与浅拷贝

js对象篇(复习巩固笔记)_第14张图片
深拷贝:将数据的所有引用结构都拷贝一份,数据在内存中独立。
浅拷贝:只针对当前对象的属性进行拷贝(浅拷贝可以节省内存开销)。

js对象篇(复习巩固笔记)_第15张图片

三、构造函数

js对象篇(复习巩固笔记)_第16张图片

1.工厂函数(模式)

js对象篇(复习巩固笔记)_第17张图片

2.JS内置的构造函数

js对象篇(复习巩固笔记)_第18张图片js对象篇(复习巩固笔记)_第19张图片

3.自定义构造函数

(1)构造函数的命名推荐采用帕斯卡命名规则,即所有的单词首字母大写。
(2)在构造函数内部,使用this来表示刚刚创建的对象。js对象篇(复习巩固笔记)_第20张图片

4.私有成员

js对象篇(复习巩固笔记)_第21张图片js对象篇(复习巩固笔记)_第22张图片js对象篇(复习巩固笔记)_第23张图片js对象篇(复习巩固笔记)_第24张图片

5.函数中的 this 指向

(1)分析this指向
在JavaScript中,函数内的this指向通常与以下3种情况有关。
①new关键字将函数作为构造函数调用时,构造函数内部的this指向新创建的对象。
②直接通过函数名调用函数时,this指向全局对象(浏览器中表示window对象)。
③如果将函数作为对象的方法调用,this将会指向该对象。js对象篇(复习巩固笔记)_第25张图片
(2)更改this指向
js对象篇(复习巩固笔记)_第26张图片js对象篇(复习巩固笔记)_第27张图片js对象篇(复习巩固笔记)_第28张图片js对象篇(复习巩固笔记)_第29张图片js对象篇(复习巩固笔记)_第30张图片

四、内置对象

js对象篇(复习巩固笔记)_第31张图片

1.String对象

js对象篇(复习巩固笔记)_第32张图片js对象篇(复习巩固笔记)_第33张图片js对象篇(复习巩固笔记)_第34张图片

2.Number对象

js对象篇(复习巩固笔记)_第35张图片js对象篇(复习巩固笔记)_第36张图片

3.Math对象

Math对象用于对数值进行数学运算,与其他对象不同的是,该对象不是一个构造函数,不需要实例化就能使用。
js对象篇(复习巩固笔记)_第37张图片js对象篇(复习巩固笔记)_第38张图片
公式:Math.random()*(max-min)+min,表示生成大于或等于min且小于max的随机值。
js对象篇(复习巩固笔记)_第39张图片

4.Date对象

js对象篇(复习巩固笔记)_第40张图片js对象篇(复习巩固笔记)_第41张图片js对象篇(复习巩固笔记)_第42张图片注意:setDay(这个真没有!!!!,星期是通过设定日期自动计算的 )

五、错误处理与代码调试

1.错误处理

js对象篇(复习巩固笔记)_第43张图片在这里插入图片描述

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

2.错误对象

js对象篇(复习巩固笔记)_第44张图片
(1)错误对象的传递
js对象篇(复习巩固笔记)_第45张图片js对象篇(复习巩固笔记)_第46张图片
(2)手动抛出错误对象
js对象篇(复习巩固笔记)_第47张图片

3.错误类型

js对象篇(复习巩固笔记)_第48张图片

4.代码调试

js对象篇(复习巩固笔记)_第49张图片js对象篇(复习巩固笔记)_第50张图片js对象篇(复习巩固笔记)_第51张图片js对象篇(复习巩固笔记)_第52张图片js对象篇(复习巩固笔记)_第53张图片

六、原型与继承

1.原型

在这里插入图片描述js对象篇(复习巩固笔记)_第54张图片js对象篇(复习巩固笔记)_第55张图片

2.继承

js对象篇(复习巩固笔记)_第56张图片
(1)利用原型对象实现继承
js对象篇(复习巩固笔记)_第57张图片
(2)替换原型对象实现继承
js对象篇(复习巩固笔记)_第58张图片

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

(3)利用Objext.create()实现继承
js对象篇(复习巩固笔记)_第59张图片
(4)混入继承
在这里插入图片描述js对象篇(复习巩固笔记)_第60张图片js对象篇(复习巩固笔记)_第61张图片js对象篇(复习巩固笔记)_第62张图片

3.静态成员

在这里插入图片描述js对象篇(复习巩固笔记)_第63张图片

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

4.属性搜索原则

当对象访问某一个属性的时候,首先会在当前对象中搜索是否包含该成员,如果包含则使用,如果不包含,就会自动在其原型对象中查找是否有这个成员,这就是属性搜索原则。
js对象篇(复习巩固笔记)_第64张图片js对象篇(复习巩固笔记)_第65张图片

5.原型链

概念:在JavaScript中,对象有原型对象,原型对象也有原型对象,这就形成了一个链式结构,简称原型链。
js对象篇(复习巩固笔记)_第66张图片
(1)对象的构造函数
js对象篇(复习巩固笔记)_第67张图片
(2)对象的原型对象js对象篇(复习巩固笔记)_第68张图片
(3)函数的构造函数
js对象篇(复习巩固笔记)_第69张图片js对象篇(复习巩固笔记)_第70张图片

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

js对象篇(复习巩固笔记)_第71张图片

(4)原型对象的原型对象
对象.constructor.prototype,可访问对象的原型对象。构造函数的prototype属性指向原型对象,原型对象的constructor属性又指回了构造函数,这就构成了一个循环。
结论:通过这种方式无法访问到原型对象的原型对象。
js对象篇(复习巩固笔记)_第72张图片js对象篇(复习巩固笔记)_第73张图片js对象篇(复习巩固笔记)_第74张图片
(5)原型链的结构
js对象篇(复习巩固笔记)_第75张图片js对象篇(复习巩固笔记)_第76张图片

脚下留心:在进行原型操作时,“对象.constructor.prototype”访问到的是该对象当前继承的原型对象的构造函数的原型对象,并不一定是实际构造函数的原型对象。js对象篇(复习巩固笔记)_第77张图片
多学一招:instanceof 运算符
js对象篇(复习巩固笔记)_第78张图片在这里插入图片描述js对象篇(复习巩固笔记)_第79张图片在这里插入图片描述

js对象篇(复习巩固笔记)_第80张图片
在这里插入图片描述
上一篇 >>> js函数篇
下一篇 >>> BOM对象与DOM对象

你可能感兴趣的:(笔记,Web前端开发初级,JavaScript,javascript,jquery,es6,前端,typescript)