资讯专栏INFORMATION COLUMN

javascript原型(容易犯糊涂点的总结)

dongfangyiyu / 1351人阅读

摘要:犯浑的地方中的原型继承几乎是面试必问点,然而真正透彻的理解它还是需要费一番功夫的,等等看到脑子就昏掉了,有时候以为自己掌握了,但是没过多久看到角度不同的讲解时就又犯糊涂了犯浑点中的构造函数,实例与原型之间的关系。

在javascirpt中,每个对象都有一个指向它的原型对象的内部链接,这个原型对象又有自己的原型,一级一级链接上去,直到某个对象的原型为null,从而实现了继承。

犯浑的地方

javascript中的原型继承几乎是面试必问点,然而真正透彻的理解它还是需要费一番功夫的,prototype, __proto__, constructor等等看到脑子就昏掉了,有时候以为自己掌握了,但是没过多久看到角度不同的讲解时就又犯糊涂了TT

犯浑点1:javascript中的构造函数,实例与原型之间的关系。

借用这篇文章中的一幅图:

总结出了以下三点内容:

原型继承的时候仅仅限于对象之间的继承;

通过构造函数生成的对象实例,实际上继承的是构造函数的原型;

构造函数在其中只是充当了构造器的角色,在考虑继承关系时,可以将其忽略,而只考虑其的prototype;

举个例子,使用Array构造器函数生成Array实例的时候,实例继承的是Array函数的prototype对象,Array的prototype对象上声明了concat,pop,splice等等的方法。

犯浑点2: 另外一个糊涂的点就是__protp__与prototype的关系。

__proto__在某些环境下可以得到该对象的原型对象, 但是标准的方法是
通过Object.getPrototypeOf()的方式查询a的原型对象。

所以,不使用__proto__,使用Object.getPrototypeOf()的方法既标准,又可以避免我们因为__proto__和prototype混淆而头疼。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79063.html

相关文章

  • 学习设计模式前需要知道的事情

    摘要:为什么要学习设计模式做事情之前问个为什么总是好的。设计模式的使用方法关于使用方式,像我这种初学者最容易犯的错误就是生搬硬套,但是模仿本来也是学习的一个过程,最重要的事情是在模仿中要学会思考。 为什么要学习设计模式? 做事情之前问个为什么总是好的。关于设计模式的好坏,我在知乎上也看过一些讨论,有知友对其提出过一些疑问,里面有一些关于设计模式的观点: 设计模式有何不妥,所谓的荼毒体现在哪...

    kviccn 评论0 收藏0
  • [总结贴] 十个 JavaScript 中易的小错误

    摘要:但是在中,的生命还会继续。这其中最典型的问题便是批量增加元素。这时,如果构造函数被调用时没有参数,则会自动设置为。因为从系统的角度来说,当你用字符串的时候,它会被传进构造函数,并且重新调用另一个函数。 序言 在今天,JavaScript已经成为了网页编辑的核心。尤其是过去的几年,互联网见证了在SPA开发、图形处理、交互等方面大量JS库的出现。 如果初次打交道,很多人会觉得js很简单...

    icattlecoder 评论0 收藏0
  • 用小猪佩奇说明Javascript原型原型

    摘要:它指向构造函数的原型对象这是原型对象上的一个指向构造函数的属性。先看代码的构造函数创建一个的实例,小猪佩奇敲黑板,划重点,理解这一句整个问题的关键,请多重复几遍。也就是说小猪佩奇的原型,就是从继承来的写成代码就是这个样子。   没错,我就是标题党!你已经成功被我骗进来了。来都来了,那就聊聊再走呗!接下来就听我一本正经地跟你说道说道。   Javascript的原型是这门语言的一个重点和...

    vibiu 评论0 收藏0
  • 再谈JavaScript面向对象思想及继承

    摘要:面向对象中有三大特征,封装,继承,多态。这不仅无法做到数据共享,也是极大的资源浪费,那么引入对象实例对象的属性指向其构造函数,这样看起来实例对象好像继承了对象一样。实例对象的原型指向其构造函数的对象构造器的指向。 前言 为什么说是再谈呢,网上讲解这个的博客的很多,我开始学习也是看过,敲过就没了,自以为理解了就结束了,书到用时方恨少啊。实际开发中一用就打磕巴,于是在重新学习了之后分享出来...

    svtter 评论0 收藏0
  • JavaScript 的面向对象重要概念

    摘要:我的第一篇博客之前学习了,但是面向对象部分一直没有时间去学,搁了很久,估计有大半年了吧。一直支持并不比简单,他的面向对象也是有很多东西的,没有人带,自己学是很容易犯晕的。这个类的每个对象共用一个代码段。 我的第一篇博客 之前学习了JavaScript,但是面向对象部分一直没有时间去学,搁了很久,估计有大半年了吧。最近又花了点时间学习了一下,很感谢韩顺平老师的视频,让我受益匪...

    songjz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<