JS原型与原型链

JS原型与原型链

1、理解原型

1、所有的引用类型(数组、函数、对象)可以自由扩展属性(除null以外)

2、所有的引用都有一个 " proto" 属性(也叫隐式原型,它是一个普通的对象)

3、所有的函数都有一个“prototype”属性(这也叫显式原型,它也是一个普通的对象)

4、所有的引用类型,它的‘proto’属性指向它的构造函数prototype属性

5、当试图得到一个对象的属性时,如果这个对象本身不存在这个属性,那么就去它的‘proto’属性(也就是它的构造函数中prototype属性)中去寻找

2、原型链

image

fn的构造函数是Foo():  fn.__proto__ === Foo.prototype
Foo.prototype的构造函数是Object :  Foo.prototype.__proto__ === Object.prototype
从图上来看,我们知道toString() 方法是在Object.prototype里面的,当调用的这个对象本身不存在这个方法时,他会一层一层向上找,直到找到null为止。这就是原型链的机制

posted @   雅痞绅士~  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示