【JavaScript】Javascript—JS进阶—Day03

Javascript------Day14

01.两种编程思想

js用面向对象来写需要用到的构造函数和原型。


目录


js是面向过程的编程语言。

而面向对象编程是这样的:


对比:

02.构造函数实现封装以及存在的问题

构造函数:

this就是那个实例对象。

(这里指向ldh,再创建一个指向zxy)

原本应该是两个function一样,但是实际上这里是不一样的。

(引用类型本体存在堆内存里,堆内存回收成本高)

解决方案在下文
总结:

03.原型对象prototype

目录


第一点详细解释:

第二点详细解释:


是属性也是对象。(Star.prototype => object)

对象.sing 本质等价于 原型链向上查找 Star.prototype.sing

(这里对象.sing 等价于 Star.prototype.sing)

ldh实例自身没有 sing;

引擎自动跳到 ldh.__ proto __ === Star.prototype

在原型对象找到 sing 函数。


所以属性和方法可以分开写:


理解:


总结:


this指向


this指向总结:

04.数组扩展案例---求最大值和数组求和

案例:

05.constructor属性以及应用

constructor属性以及应用:

请看下图:

所以,

如下图:


应用/使用场景:

如下图:

做出如下对比:

这样就会分不清方法到底是属于哪一个构造函数的了(即找不到父级了)
所以,采取如下方法:


提问:

06.对象原型_proto_

学习对象原型__proto__前的思考


先前学了原型对象 ,现在我们来学对象原型

(记住是各两个下划线)


所以,关系图如下:


总结:


课后作业:

07.原型继承

JS大多是借助原型对象 实现继承的特性。


详细解读:

继承,我们需要借助原型对象,原因如下:

注意,要让constructor指回Woman

但是,这样做也有弊端:

这是因为他们继承的都是同一个对象。


解决方案:构造函数。

解读:

08.原型链以及instanceof运算符

原型对象也是对象。

对象原型指向原型对象。

Object已经是最大的了,再往上指就是指向null。

这就是我们所说的原型链:

主要说的是:

总的来说:

查找规则:

原型链就是查找规则。
最后,我们再来补充一个运算符:(第⑥点)

如果不清楚可以去MDN里查看:

相关推荐
吴声子夜歌3 小时前
ApacheCommons——commons-pool2(高性能通用对象池框架)
java·开发语言·apache
名字还没想好☜8 小时前
React 实现暗黑模式切换:localStorage 持久化、SSR 首屏闪烁与跟随系统主题
前端·javascript·react.js·ecmascript·react·next.js
kruptos8 小时前
分布式系统怎么“选主“?Raft 共识一次讲清
开发语言·分布式·php·共识算法
吴声子夜歌8 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
自动化监测Learner8 小时前
主流 Web 端地图引擎对比:选型指南与优劣分析
javascript
benchmark_cc9 小时前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
王的宝库9 小时前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
Tairitsu_H9 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现
泡海椒9 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
小智老师PMP10 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理