| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 原型链详细概念和雷雨的验证 -> 正文阅读 |
|
[JavaScript知识库]原型链详细概念和雷雨的验证 |
首先是对原型链的定义: ????????普通构造函数的原型 继承自 顶级构造函数的原型 ?这里先定义一个构造函数? Student
再说说prototype ????????每个函数都有一个 prototype 属性,每一个对象都会关联的一个属性,而这里所说的原型链就是关于原型对象的继承,原型函数获取方式,以上面Student为例
? ? 结果如图:? ??,即是构造函数Student本身 创建一个实例后,他们之间满足原型三角关系:如图所示 这里就有一个概念,构造函数时父亲,原型对象是母亲,而实例化就是孩子 实例化对象.__proto__? ? 表示找孩子的母亲,即实例化对象的上级原型函数 ?
?图中顶级原型构造函数:他是神,创建了所有的原型对象.只要记得这个就好,而这个父亲既然是构造函数,就一定会有原型对象,也就是顶级原型对象.我们还可以把我们定义的Student的圆形函数看成是顶级原型函数的孩子,那么他们三个之间也满足原型三角关系. ? ? ? ?而原型链的方法继承就在绿色区域向下继承,如果闲着蛋疼,还可以把顶级原型函数的母亲找出来,你以为她会报错吗?不,是NULL,虽然并没有什么用😐。
继承的例子给大家举一个。
? ? ? ? 这里我是给最顶级的构造函数的原型函数挂载了方法(挂载?就是在原型上加函数的意思)可以看到,它继承给了所有对象的原型函数,因此但凡是个对象都会有这个方法,都可以调用。 ? ? ? ? 而实际上,顶级原型构造函数也是有父亲母亲的,这里需要引入一个概念,Function,一切的普通构造函数都是由Function这个构造函数创建的实例,也就是Function的孩子,因为,原型链最可怕的地方来了,本人呕心沥血,深究其中关系,完整的做完了这张图 ???????? ?因此这里错综复杂的关系变得更多起来。 ? ? ? ? ?而原本的普通构造函数,也有了双亲,即Function和与之对应的原型对象,因此也有原型三角关系
? ? ? ? 要是有人问图中所示的Function怎么没有,我也不知道,就好像人是由女娲造出来的,你问我女娲怎么来的,盘古怎么来的一样,需要问到了尽头,因为这就是作者所创,已经到了尽头。而且是可以用代码证明这件事的。而这里的思维:极度困难!!!!慎看,因为已经不是简单的三角关系了,雷雨听过吧······ ????????
总结:最后这混乱关系当做笑话看看即可(看似成立,实则不存在) ? ? ? ? Function和Object以及Function.prototype和Object.prototype都遵循原型的三角关系,因为三角关系的原因,JS的作者为了有个源头,强行关联的内容,嘿嘿没想到吧,但是这个是不是可以在你去面试的时候去虐面试官了😶,面试官:"wc,nb" ? ? ? ? 而这里的本质四个东西,即顶级那一排,都不是这么来的:是由JS引擎自动产生的,彼此之间没有创建的. ???????? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:02:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |