原型链prototype和__proto__区别和联系

本文解析了JavaScript中原型链的工作机制,介绍了Function.prototype与实例__proto__的区别与联系,并阐述了如何通过构造函数创建对象及对象间原型继承的关系。

正所谓道生一,一生二,二生三,三生万物;原型链的设计原理其实和这一样,万物皆对象,任何自定义的函数其实都是Function的一个实例,在一开始学习的时候,总是对propertype和__proto__指向的是否是一个东西困惑不解,

其实对函数的本源Function来说,Function.propertype===Function.__proto是完全相等的,

但是对Function的任何一个实例,比如var sum=function(){},对于他而言,sum.prototype和sum.__proto__是不相等的。

为什么会出现这种情况呢,那是因为sum.prototype是一个对象,

 

而sum.__proto__则只想了构造函数

__proto__是一个隐藏属性,任何一个函数都有,prototype任何函数也有这个属性,指向函数的原型

 __proto__指向了他上一级的原型

所有通过函数new出来的东西,例如sum=new Function();这个东西sum都有一个__proto__指向这个函数function()的prototype。

 

 

转载于:https://www.cnblogs.com/webseng/p/6933206.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值