美文网首页
构造函数和原型、原型链

构造函数和原型、原型链

作者: 逆风飘游的鱼 | 来源:发表于2019-08-27 08:22 被阅读0次

每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。

构造函数

1.创建特定类型的对象

2.原生构造函数:Object、Array

3.自定义构造函数,创建自定义对象类型

构造函数与函数区别

调用方式不同,只要用new操作符调用就可作为构造函数,不用new跟别的函数一样

原型

构造函数

每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,这个对象是原型对象。

所有原型对象会自动获得一个constructor属性,这个属性包含一个指针,指向构造函数(prototype属性所在的函数)

构造函数创建实例

prototype是通过调用该构造函数创建的对象实例的原型对象。

所有对象实例共享原型对象的属性和方法

调用构造函数用new操作符创建一个新的实例后,该实例内部包含一个内部属性【Prototype】,该属性指向构造函数的原型对象。

连接存在实例与构造的原型对象之间,不存在实例与构造函数之间

对象属性查找

访问某个对象的属性时,首先从对象实例开始查找,没有找到的话,搜索指针执行的原型对象

向对象实例中添加与原型对象同名的属性,会覆盖原型对象的同名属性,但不会修改。

一个属性在对象实例中,hasOwnProperty返回true

对象能够访问某个属性,in操作符返回true,无论在原型上还是 实例上

原型链

假如我们让原型对象等于另一个类型的实例,结果会怎么样呢?显然,此时的原型对象将包含一个指向另一个原型的指针,相应地,另一个原型中也包含着一个指向另一个构造函数的指针。假如另一个原型又是另一个类型的实例,那么上述关系依然成立,如此层层递进,就构成了实例与原型的链条。这就是所谓原型链的基本概念。

相关文章

  • 原型链

    原型链图示 对象拥有原型和构造函数--proto--   原型constructor   构造函数 只有函...

  • js集成

    原始继承模式--原型链 2:借用构造函数 3:共享构造原型 4:圣杯模式原型链; 构造函数; 共享原型; 圣杯模式...

  • ES5里面的对象和继承

    构造函数和原型链 注意:原型链上面的属性会被多个实例共享,而构造函数不会 web类继承Student类 原型链 ...

  • JavaScript高级程序设计学习笔记之继承模式

    原型链 JavaScript的继承主要依靠原型链来实现的。我们知道,构造函数,原型,和实例之间的关系:每个构造函数...

  • js 集成模式 07-24

    **原始继承模式--原型链 2:借用构造函数 3:共享构造原型 4:圣杯模式**一:原型链; 二:构造函数; 三:...

  • js原型链

    目录 1.对象的原型和原型链1.1什么是原型1.2查看原型1.3对象的原型链 2.使用构造函数2.1 函数的原型链...

  • 第六章(3):继承

    继承的几种方式 原型链 原型链示意图: 构造函数 组合继承(将原型链和构造函数组合在一起) 原型式继承 寄生式组合...

  • js基础之实现继承的几种方式

    js 实现继承的方式有: 原型链继承; 构造函数继承; 组合继承(原型链继承 + 构造函数继承)(最常用);(原型...

  • 2018-01-09 关于javascript原型链的思考 pl

    s 深入理解原型和原型链? 构造函数 理解原型和原型链 new的时候js都干了什么? 一个实现继承的demo 构造...

  • js面向对象的几种写法

    一、工厂模式 二、构造函数模式 三、原型模式 四、组合使用构造函数和原型模式 五、原型链继承 六、借用构造函数继承...

网友评论

      本文标题:构造函数和原型、原型链

      本文链接:https://www.haomeiwen.com/subject/bwcsectx.html