资讯专栏INFORMATION COLUMN

prototype原型

RebeccaZhong / 877人阅读

摘要:当系统为构造器创建原型对象时,会执行这样一条语句也就是说,这个原型是的一个实例。原型链原型对象也是对象,当这个对象找不到某个属性时,会到构造器的原型对象中去找,这个就是原型链。

1、prototype介绍

功能:返回对象类型原型的引用

格式:Class.prototype

2、快速入门

注意:
Person.prototype.age不是Person.age
Person.prototype.age是指为Person类下的实例添加的age属性
Person.age 是指为Person类添加的静态属性

3、原理

当程序加载Person函数时,会为Person构造器创建Person原型对象,它们是独立存在的。构造器中有一个prototype属性指向了原型对象,原型对象中有一个constructor属性指向构造器,当Person类的实例在使用一个不存在的属性时,就会自动到Person构造器的原型对象中去找。

p1.constructor:p1对象中没有constructor属性,所以会到Person构造器的原型对象中去找,原型对象中的constructor指向了Person构造器,所以最后返回的是构造器。

问题:增加p3.age=20,那么p1.age的值是多少?

p3.age相当于为p3对象动态添加了一个叫age的属性,但没有改变Person原型对象中的age的值,之后p3不用去原型对象中找age属性了,p1仍然没有age属性,所以仍然去找原型对象中的age属性。

4、原型继承

所有类的父类都是Obeject类,为什么?
问题:
原型是什么?
原型是对象,它是Object类的实例。
当系统为Person构造器创建原型对象时,会执行这样一条语句:
Person.prototype=new Object(),也就是说,这个原型是Object的一个实例。那么,Object类下的所有属性和方法会被这个原型对象所拥有。Person下的实例就可以通过这个原型对象使用这些属性和方法,所以说,Object是所有类的父类。

5、原型链

Person原型对象也是对象,当这个对象找不到某个属性时,会到Object构造器的原型对象中去找,这个就是原型链。

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

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

相关文章

  • 温故js系列(15)-原型&原型链&原型继承

    摘要:给添加属性给的原型对象添加属性原型链在中,每个对象都有一个属性,其保存着的地址就构成了对象的原型链。实例变量实例函数原型链继承有了原型链,就可以借助原型链实现继承。是中唯一一个处理属性但是不查找原型链的函数。 前端学习:教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-前端资源汇总 欢迎提issues斧正:原型&原型链&原型继承 JavaScript-原...

    Ethan815 评论0 收藏0
  • 《javascript高级程序设计》笔记:原型图解

    摘要:不理解没关系,下面会结合图例分析上一篇高级程序设计笔记创建对象下一篇高级程序设计笔记继承参考之原型链的解读三张图搞懂的原型对象与原型链继承与原型链 文章直接从原型图解开始的,如果对一些概念不太清除,可以结合后面几节查看 1. 图解原型链 1.1 铁三角关系(重点) function Person() {}; var p = new Person(); showImg(https://s...

    vspiders 评论0 收藏0
  • JavaScript...原型与继承中的原型链...

    摘要:原型原型是什么在中函数是一个包含属性和方法的类型的对象而原型就是类型对象的一个属性在函数定义时就包含了属性它的初始值是一个空对象在中并没有定义函数的原型类型所以原型可以是任何类型原型是用于保存对象的共享属性和方法的原型的属性和方法并不会影响 原型 原型是什么 在JavaScript中 函数是一个包含属性和方法的Function类型的对象 而原型(Prototype)就是Function...

    MiracleWong 评论0 收藏0
  • JS基础-原型原型链真的不能一知半解

    摘要:原型链和对象的原型是对象实例和它的构造函数之间建立的链接,它的值是构造函数的。对象的原型根据上文提到的构造调用函数的时候会创建一个新对象,自动将的原型指向构造函数的对象。 showImg(https://segmentfault.com/img/remote/1460000020185197); JS的原型、原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清...

    changfeng1050 评论0 收藏0
  • 一篇文章带你理解原型原型

    摘要:上面的代码,运行以后,我们可以看到因为的原型是指向的实例上的,所以可以访问他的属性值,那如果我不想让访问的构造函数里声明的属性值,那怎么办呢只需要将指向的原型而不是实例就行了。 走在前端的大道上 本篇将自己读过的相关 javascript原型和原型链 文章中,对自己有启发的章节片段总结在这(会对原文进行删改),会不断丰富提炼总结更新。 文章——深入理解javascript之原型 一般的...

    yintaolaowanzi 评论0 收藏0
  • 原型链一:原型原型

    摘要:说白了,原型就是构造函数用来构造新实例的模板对象。什么是原型链先回答什么是原型。例如这个原型的原型就是这个构造函数的,既这个原型对象。这些原型对象通过像链子一样连起来,就叫做原型链。 原型链初步学习 这篇博客只是我初步理解原型链的一个个人学习笔记,写的比较粗略,且有的地方可能理解错误. 更多更专业的关于原型链的解释请看JavaScript深入之从原型到原型链和阮一峰的博客:Javas...

    MudOnTire 评论0 收藏0

发表评论

0条评论

RebeccaZhong

|高级讲师

TA的文章

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