javascript原型链怎么实现
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章主要讲解了"javascript原型链怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"javascript原型链怎么实现"吧!原型链在E
千家信息网最后更新 2025年11月14日javascript原型链怎么实现
这篇文章主要讲解了"javascript原型链怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"javascript原型链怎么实现"吧!
原型链
在ES6中引入了class关键字,但是JS依然是基于原型的,class实际上是语法糖。
举个例子,有一个people class:
class People { constructor(props) { this.name = props.name; } run() { console.log('run') }}通过new people 这个class 产生了许多的人,张三,李四:
let lisi = new People('李四')但是茫茫人海中,有一类人天赋异禀,他们这类人叫做超级英雄 class Hero
class Hero extends People { constructor(props) { super(props); this.power = props.power } heyHa() { alert(this.power) }}class Hero 继承了 People,所以英雄首先是个人,具有run方法,然后Hero具备普通人不具备的超能力heyHa方法。我们可以定义有一个英雄叫做Jinx,具有cannon的超能力:
let Jinx = new Hero({ name: 'jinx', power: 'cannon!' })尽管实例Jinx没有定义run方法,但是通过原型链可以查找到People的原型上具有这个run方法,即它的隐式原型__proto__指向构造函数的原型

当实例访问某个方法或属性时,会从自身开始,然后往原型链上回溯查找
Jinx.heyHa() // cannon!// 当自身有该方法时Jinx.run = () => console.log('i just fly!')Jinx.run() // i just fly!那么People.prototype.__proto__指向哪里呢?Object.prototype, 在控制台中输入代码可以看到:

而Object.prototype的__prototype__ 等于 null,宇宙的尽头是虚无。。
至此完整的原型链图就是这样的:
我们可以基于原型链来实现一个简易的JQuery库
class JQuery { constructor(selector, nodeList) { const res = nodeList || document.querySelectorAll(selector); const length = res.length; for (let i = 0; i < length; i++) { this[i] = res[i] } this.length = length; this.selector = selector; } eq(index) { return new JQuery(undefined, [this[index]]); } each(fn) { for(let i = 0; i < this.length; i ++) { const ele = this[i] fn(ele) } return this; } on(type, fn) { return this.each(ele => { ele.addEventListener(type, fn, false) }) } // 扩展其他 DOM API}const $$ = (selector) => new JQuery(selector);$$('body').eq(0).on('click', () => alert('click'));在控制台中运行一下,结果如下:
感谢各位的阅读,以上就是"javascript原型链怎么实现"的内容了,经过本文的学习后,相信大家对javascript原型链怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
原型
方法
英雄
学习
内容
实例
就是
指向
控制台
能力
李四
控制
普通
个人
人海
代码
例子
关键
关键字
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
四年级网络安全手抄报8k纸
网络安全主题作文800字
2015网络安全宣传片
信阳市启动网络安全宣传
小米手机号码数据库在哪里更新
访问服务器共享文件
网络安全知识心得200字
云数据库如何保障安全
特色少儿编程软件开发
怎么样可以找到软件开发公司
浙江现代软件开发出厂价格
宁晋天纯网络技术服务
如何选择服务器宽带
丹江口互联网软件开发统计
我的世界服务器创造模式的地图
航空航天软件开发票
网络安全讲座稿子
图片怎么传入数据库
戴尔R7920服务器搭建与配置
慧搜网络技术
互联网科技博览会地址
网络打印机服务器接口
网易uu服务器身份验证有风险吗
松下plc opc服务器
软件开发文档扫描全能王
一台服务器安装k8s集群
ps5命运2连接不上服务器
网络技术海信班
dell服务器raid怎么设置
隐私性属于网络安全法特性吗