原型链

作者: 糖糖不加糖_ | 来源:发表于2023-02-18 21:35 被阅读0次

https://blog.csdn.net/cc18868876837/article/details/81211729

image.png image.png image.png

__ proto __ 、contructor、prototype

对象独有:__ proto __ 、contructor
函数独有:prototype

由于函数也是对象,所以函数也有__ proto __ 和 contructor,实例对象没有prototype!!!!

__ proto __

由一个对象指向一个对象 即指向他的原型对象(父对象)

XX.__ proto __ === 父对象.prototype
所有函数.prototype的父对象都是Object

作用是如果当前对象内部没有这个属性的话,就会向上查找,一直到找到这个属性,或者查找道null为止(原型链终结就是null了,null之后在往上找就会报错了, 若不算null,那Object就是对象的最高一层)

const Foo = function() {}  // const Foo = new Function()和下面结果相同
const fn = new Foo()
fn.__proto__ === Foo.prototype // true
// 实例往上找原型链,不会经过Function.prototype,因为Foo本身是函数不是实例,Foo.prototype的父对象是Object
Foo.prototype.__proto__ === Object.prototype  // true


Foo.__proto__ === Function.prototype // true
Function.prototype.__proto__ === Object.prototype  // true
Object.prototype.__proto__ === null  // true

contructor

由一个对象指向一个函数 即指向该对象的构造函数

XX.contructor === 父函数
XX.prototype.contructor === XX
函数最后会以Function收尾

每个对象都可以找到对应的构造函数contructor(有可能是自己定义的,也有可能是__ proto __原型链中找到的,若是通过原型链找到的,那么contructor值就是原型链的contructor),所有函数和对象都是由Function的构造函数得来的,所以contructor的终点就是Function(另外Function对象比较特殊,他的contructor就是自己即Function)


image.png
// 普通函数/方法的构造函数,是父函数,ps Function是自己,因为他封顶了
fn.constructor === Foo  // true
Foo.constructor === Function  // true
Object.constructor === Function  // true
Function.constructor === Function  // true

// 函数prototype的构造函数就是函数自己本身
Foo.prototype.constructor === Foo  // true
Object.prototype.constructor === Object  // true

prototype

由一个函数指向一个对象
含义为所有实例的原型对象

相关文章

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • 原型、原型链

    (什么是原型、原型链?有什么作用) JavaScirpt深入之从原型到原型链 图解 Javascript 原型链 ...

  • 原型链&查找规则&作用域链

    原型链(隐式原型链) 属性的查找规则(原型链的查找规则) 作用域链

  • 关于原型原型链的理解

    什么是原型? 什么是原型链? 为什么需要原型,和原型链?

  • 原型链实现继承

    原型链 原型链示意图 使用原型链实现继承 这是怎么回事呢? 原型链在哪? 听我细细道来~ 首先 Teacher 实...

  • 继承

    原型链直接继承 原型链直接继承prototype 原型链继承_prototype属性 继承_构造函数绑定

  • js中的实现继承的几种方式

    大纲:原型链借用构造函数组合继承原型式继承寄生式继承寄生组合式继承 1、原型链: 什么是原型链? 原型链的基本思想...

  • 【原型和原型链】什么是原型和原型链

    【原型和原型链】什么是原型和原型链https://blog.csdn.net/xiaoermingn/articl...

  • js原型链

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

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

网友评论

      本文标题:原型链

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