美文网首页
JS面向对象-原型对象,实例对象,构造函数的关系

JS面向对象-原型对象,实例对象,构造函数的关系

作者: Ecl_02b8 | 来源:发表于2018-06-12 15:12 被阅读0次

**JS中每创建一个函数,该函数就会自动拥有一个prototype属性,为什么那?? **

因为最根上的object拥有一个prototype属性,而js中所有的对象又都继承自object,所以js中所有的对象都拥有一个prototype属性,而在js中函数也是对象,所以js中每个函数也都有一个prototype属性。

例如:function Person(){...} 和function Dog(){...}

image

而每一个prototype属性又会获得一个constructor属性

image

该constructor属性有一个隐含的指针,指向了prototype属性所在的函数。

image

这里就说明了,当用alert函数弹出 Person.prototype.constructor 的时候,弹出的结果是

function Person{....}

当通过new Person() 创建一个对象实例后,该实例包含一个隐含的指针,指向了Person.prototype

image

结合之前的例子,通过图示说明一下 构造函数,实例对象,原型对象之间的关系

image

Person 的每个实例都包含一个隐形指针,指向Person.prototype,换句话说,它们与构造函数没有直接关系。

可以用isPrototypeof( ) 来判定一个“实例”是否指向某个“原型对象”;也可以理解为某个实例是否源于某个原型对象。

alert(Person.prototype.isPrototypeof(p1 )) 返回true,说明p1指向Person.prototype,

Person.prototype 是实例p1的原型对象。

相关文章

  • 12.如何查找构造函数和原型的属性

    构造函数.prototype 查看构造函数的原型属性实例对象.ptoto 查看实例对象的构造函数的原型实例对象...

  • js继承

    继承 构造函数 原型对象 对象实例 三者之间的关系 每个构造函数都拥有一个原型对象,构造函数.prototy...

  • 原型链

    构造函数、原型、实例的关系 通过构造函数创建实例 每个构造函数都有一个原型对象 原型对象到包含一个指向构造函数的指...

  • JS面向对象-原型对象,实例对象,构造函数的关系

    **JS中每创建一个函数,该函数就会自动拥有一个prototype属性,为什么那?? ** 因为最根上的objec...

  • JavaScript原型链

    原型链主要是实例对象和构造函数之间的关系,而基本上所有的js对象都有构造函数,而构造函数又是一个特殊的对象。 Ja...

  • JS继承的相关问题

    构造函数、原型对象和实例之间的关系? 每个构造函数都有一个 prototype 属性指向原型对象,原型对象中有一个...

  • 3-javascript 构造函数

    js中面向对象编程是基于构造函数(consstructor)和原型链(prototype)的。 构造函数作为对象的...

  • 继承的几种方式

    构造函数,原型和实例的关系每个构造函数都有一个原型对象prototype,原型对象中有个constructor属性...

  • javascript中面向对象编程-创建对象之原型模式

    理解名词:对象 原型对象 原型属性 函数 构造函数 实例 对象: Object,创建对象,对象属性方法原型对象:...

  • 构造函数,实例,原型关系详解

    1.构造函数,实例,原型三者关系如下 构造函数的prototype指向其原型对象 原型对象的constructor...

网友评论

      本文标题:JS面向对象-原型对象,实例对象,构造函数的关系

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