浅谈JS的原型和原型链


Posted in Javascript onJune 04, 2021

1.原型prototype

javascript中所有函数都具有这个属性,所有具有prototype属性的对象都是一个函数。prototype的作用是向对象添加一个方法/属性。

function persion(){}
persion.prototype.name = "xiaoming"
console.log(persion.prototype)//{name: "xiaoming", constructor: ƒ}

2.原型指针:__proto__

如果将上面persion函数生成一个实例对象Persion1,用prototype为他添加一个属性写法如下:

function persion(){}
persion.prototype.name = "xiaoming"
let Persion1 = new persion();
console.log(Persion1) //控制台结果如下

打印实例Persion1的结果如下:

浅谈JS的原型和原型链

从上面打印的结果来看,Persion1.__proto__.name = persion.prototype.name,也就是实例对象的__proto__属性等于其构造函数的prototype。

理解了上面之后,原型链就很好理解了,我们可以通过Persion1.__proto__.__proto__直接查找到Object的方法。这么说可能不太直观,上代码:

function persion(){}
persion.prototype.name = "xiaoming"
let Persion1 = new persion();
console.log(Persion1.__proto__.__proto__.toString) //通过原型链查找到的Object的toString方法
console.log(Object.prototype.toString)//Object上的toString方法

控制台打印结果如下,这样就印证原型链逐级查找的特性。

浅谈JS的原型和原型链

总结

任何对象都可以通过原型链,也就是__proto__属性,逐级查找,最终的重点都是Object,必经之路是function。他们的关系像是用一条链子串起来一样,我们把这种关系叫做原型链。

浅谈JS的原型和原型链

以上就是浅谈JS的原型和原型链的详细内容,更多关于JS的原型和原型链的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
让iframe子窗体取父窗体地址栏参数(querystring)
Oct 13 Javascript
jQuery实现延迟跳转的方法
Jun 05 Javascript
Eclipse引入jquery报错如何解决
Dec 01 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
Dec 14 Javascript
JavaScript实现水平进度条拖拽效果
Jan 18 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
浅谈javascript的url参数parse和build函数
Mar 04 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
详解vue中的computed的this指向问题
Dec 05 Javascript
javascript获取元素的计算样式
May 24 Javascript
ES6 Promise对象的应用实例分析
Jun 27 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
Nov 23 Javascript
vue响应式原理与双向数据的深入解析
代码解析React中setState同步和异步问题
Jun 03 #Javascript
React配置子路由的实现
手把手教你从零开始react+antd搭建项目
react antd实现动态增减表单
react 项目中引入图片的几种方式
Jun 02 #Javascript
小程序wx.getUserProfile接口的具体使用
You might like
php网页病毒清除类
2014/12/08 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
jQuery实现的简单分页示例
2016/06/01 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
Python常见文件操作的函数示例代码
2011/11/15 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
Python绘制股票移动均线的实例
2019/08/24 Python
YUV转为jpg图像的实现
2019/12/09 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
Python程序慢的重要原因
2020/09/04 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
python 模拟登陆163邮箱
2020/12/15 Python
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
机电一体化专业应届本科生求职信
2013/09/27 职场文书
会计专业应届生求职信
2013/11/24 职场文书
调解协议书
2014/04/16 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
2014年平安夜寄语
2014/12/08 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
Python正则表达式中flags参数的实例详解
2022/04/01 Python