美文网首页饥人谷技术博客
JS之构造函数、实例、原型三者之间的关系

JS之构造函数、实例、原型三者之间的关系

作者: PingerL | 来源:发表于2019-10-31 16:24 被阅读0次

一:几个名词

  1. 构造函数(constructor):专门用来生成实例对象的函数
  2. 原型对象(prototype):就是定义所有实例对象共享的属性和方法的对象

二:三者之间的关系

function Person(name){
    this.name = name;
}
Person.prototype.sayName = function(){
    console.log('My name is :' + this.name);
}
var p = new Person("孟婆")
p.sayName();
    • Y1.PNG
  • 任何函数都具有一个 prototype 属性,该属性是一个对象
  • 构造函数的 prototype 对象默认都有一个 constructor 属性,指向 prototype 对象所在函数
  • 通过构造函数得到的实例对象内部会包含一个指向构造函数的 prototype 对象的指针 __proto__

三:原型链

JavaScript 规定,所有对象都有自己的原型对象(prototype)。一方面,任何一个对象,都可以充当其他对象的原型;另一方面,由于原型对象也是对象,所以它也有自己的原型。因此,就会形成一个“原型链”(prototype chain):对象到原型,再到原型的原型……
如果一层层地上溯,所有对象的原型最终都可以上溯到Object.prototype,即Object构造函数的prototype属性。也就是说,所有对象都继承了Object.prototype的属性。这就是所有对象都有valueOf和toString方法的原因,因为这是从Object.prototype继承的。
那么,Object.prototype对象有没有它的原型呢?回答是Object.prototype的原型是null。null没有任何属性和方法,也没有自己的原型。因此,原型链的尽头就是null。

相关文章

  • js继承

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

  • js 原型 2019-12-15

    原型:constructor 构造函数、实例、原型对象三者之间的关系 原型链 原型对象中的this指向 扩展内置对...

  • 构造函数、实例对象、原型对象三者之间的关系

    三者之间的关系: 构造函数可以实例化对象 构造函数中有一个属性叫prototype,是构造函数的原型对象 构造函数...

  • 原型链的理解

    在理解原型链之前,首先要知道构造函数、实例、原型三者是什么,以及之间的关系。 构造函数 function Pers...

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

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

  • 构造函数、实例、原型对象三者的关系,整理一下

    一、构造函数、实例、原型对象三者之间的关系 从打印内容可以看出 它们之间的关系图如下 二、原型链 有了上面的关系图...

  • JS中构造函数和原型理解图

    一、构造函数、实例、原型对象三者之间的关系图 二、原型链 三、备注 1.摘自:https://www.bilibi...

  • 原型模式

    p1 打印如下 构造函数、构造函数实例对象、构造函数原型属性 之间的关系

  • JavaScript 常用继承方式

    JavaScript 常用继承方式 原型链继承构造函数,原型,实例之间的关系:每个构造函数之间都有一个原型对象,原...

  • js关于继承

    Javascript是一门基于原型链的语言构造函数,原型属性与实例对象三者的关系: Person 是一个构造函数(...

网友评论

    本文标题:JS之构造函数、实例、原型三者之间的关系

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