原型和原型链--图解

本文解析了JavaScript中的prototype属性,区分了普通函数和构造函数的prototype,介绍了__proto__的作用以及它与Function.prototype和Object.prototype的关系,强调了在浏览器环境中的特定行为。
摘要由CSDN通过智能技术生成

https://juejin.cn/post/7255605810453217335

prototype是函数的属性(本质是一个对象),不是对象的属性。
普通函数和构造函数的prototype属性是空对象{}(其实有2个属性,一个是constructor,一个是_proto_)。
对象没有prototype属性。prototype属性有个constructor属性,指向构造函数。
无论函数还是对象都有一个__proto__属性,指向实例的类型的prototype。
函数对象的__proto__的指向Function.prototype

let foo = function(){
return 0;
}
foo()	//0
console.log(foo.__proto__===Function.prototype)//true

prototype对象的__proto__指向Object的prototype,Object的prototype的__proto__指向null。person的指向Person.prototype,Object.prototype._proto_指向null

date和array对象的proto属性是谁呢?Date.prototype和Array.prototype

构造函数的原型至少包含__proto__和constructor

注:必须在浏览器环境中console实验,node中console不行。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值