每日一题·对原型和原型链的理解(12/1)
创始人
2024-03-05 15:13:58
0

目录

1. 原型链为什么要出现?

2. 原型是什么

3. 原型链是什么

4. 一些代码片段


1. 原型链为什么要出现?

声明2个实例,每个实例都会独立创建sayHi方法,非常占用内存。一样的方法,可以放在原型对象上共用。

        function Person(name, age) {this.name = namethis.age = agethis.sayHi = () => {console.log(1);}}let p1 = new Person('ls', '19')let p2 = new Person('zs', 20)console.log(p1.sayHi === p2.sayHi); // falsep1.sayHi()p2.sayHi()

2. 原型是什么

 

  1. 每个函数身上都有要给prototype属性指向它的伴生对象

  2. 每个对象身上都有一个proto属性,指向它的构造函数的伴生对象

  3. 伴生对象身上有constructor属性,指向它的构造函数。伴生对象也有proto属性,指向父节点的prototype

  4. 我们一般会在prototype属性上面挂载公用的方法

  5. class语法,里面的方法,就是直接挂载到原型上面的。但是如果加了static关键字,就不是挂载到prorotype上

  6. 原型的特点:JS对象是通过引用来传递的,当修改原型时,与之相关的对象也会继承这个修改

  7. function Object和 function Function也是构造函数Function的实例对象, 他们俩都有proto属性指向Function.prototype

3. 原型链是什么

  1. 原型链是什么

  2. proto属性的指向,就会构成了原型链

  3. 当我们需要一个属性时,JS引擎会先查看当前对象中是否有这个属性,找不到,就会往proto属性关联的prototype对象查找

  4. 最终的根节点就是 Object.prototype.proto属性,指向的是undefiend

  5. 查找的链路越长,对性能的影响就会越大

4. 一些代码片段

var a = {}
a.constructor.prototype === a.__proto__ // true 因为 a.constructor就是Object构造函数

相关内容

热门资讯

海南产经新观察:为“向数图强”... 中新网海口12月23日电 (黄方舟)已经启动全岛封关的海南自贸港,正致力推动公共数据资源开发利用,加...
幼儿园收费划出“制度红线”,严... 大象新闻2025-12-23 17:12:18 2026年1月1日起,幼儿园收费实行目录清单管理,建...
快手就遭到黑灰产攻击谴责违法犯... 针对快手平台上出现违规内容的异常情况,12月23日,南都N视频记者从快手科技方面获悉,公司快手应用的...
调解故事 | 高效化解装修纠纷... 近日,延吉市房地产纠纷人民调解委员会成功调解了一起合同纠纷,切实维护了当事人合法权益。 今年5月,...
宁波女婴医疗纠纷进入司法程序 ... 央广网宁波12月23日消息(记者陈金莲 俞烨)12月23日,记者从宁波市海曙区人民法院了解到,该院已...
被举报打赏网红600余万,国企... 张女士系中国某工程咨询集团有限公司职员,其名下实名手机号注册的抖音账号“xx阳光”在不到两年的时间里...
涉房屋租赁合同纠纷案情:不适租... 租赁企业提供的房屋不适租,承租方有权单方解除合同并主张违约责任。 12月23日,北京第三中级人民法院...
农银人寿广西分公司开展普法宣讲... 为深入贯彻落实宪法宣传教育工作要求,切实增强员工法律意识与风险防范能力,帮助员工妥善化解工作、生活中...
重大毒品犯罪案件证据收集审查判... 重大毒品犯罪案件证据收集审查判断工作指引(浙江省) (浙检发诉三字〔2015〕1号) 来源:为你辩护...
知名拆迁律师联系方式揭秘:为您... 在拆迁过程中,遇到纠纷和难题是常有的事,这时候找一位有名的拆迁律师至关重要。那么,如何获取资深拆迁律...