关于原型链

作者: ForeverYoung20 | 来源:发表于2017-03-29 20:07 被阅读214次

笔记重点:

根部的 Object.prototype == null;
空函数._proto_ == Object.prototype

原型链绘图

注解:
Person为父构造函数,Girl为子构造函数。原型链继承原理:子构造函数.prototype = new 父构造函数()。

原型链绘图.png
console.log(Object instanceof Object);
// 构造函数(Object)的原型对象(Object.prototype)是否在当前对象(Object)的原型链中,true
console.log(Function instanceof Function);
//构造函数(Function)的原型对象(空函数)是否在当前对象(Function)的原型链中 true
console.log(Function instanceof Object);
//构造函数(Object)的原型对象(Object.prototype)是否在当前对象(Function)的原型链中,true
console.log(Object instanceof Function);
//Function的原型对象(空函数)是否在Object的原型链中,true

详细推论

  1. 构造函数本身是函数,函数本质是对象,每一个对象都有构造函数,因此构造函数也有他自己的构造函数。故:
Girl.constructor == Function;
  1. Function的原型对象是一个空函数
Function.prototype == function(){};//空函数
  1. Function是一个构造函数,同1中推理,因此Function有自己的构造函数。
Function.constructor == Function;
  1. Function对象的原型对象应该等于它的构造函数的原型对象。
Function.__proto__  == Function.constructor.prototype == Function.prototype == function(){}//空函数
  1. Object本身是一个构造函数,再同1中推理,因此有自己的构造函数。
Object.constructor == Function
  1. Object对象的原型对象应该等于它构造函数的原型对象
Object.__proto__ == Object.constructor.prototype == Function.prototype == function(){}//空函数

综上推论:
空函数的原型对象应该等于它构造函数的原型对象,即:

空函数.__proto__ == 空函数.constructor.prototype == Function.prototype == 空函数 ?????

!!!!!!重点:!!!!!!!
上述推论时错误的!
正确如下:

空函数.__proto__ == Object.prototype

笔记重点:(首尾呼应,加深印象!!!)
根部的 Object.prototype == null;
空函数._proto_ == Object.prototype

相关文章

  • 关于JS中的原型和原型链

    目录 关于js 对象和原型 原型链 基于原型链的继承 参考资料ECMAScript 6 入门JavaScript原...

  • 原型链结构图

    原型链结构图 代码示例 原型链图示例 Function.prototype原型链 关于Function和自定义构造...

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

    原型与原型链 基本概念 关于原型和原型链的知识,首先来理解下以下几个知识点: 所有引用类型(Object、Arra...

  • 理解关于Function的原型链问题

    理解关于Function的原型链问题 关于Function的原型链问题的一些个人粗略理解,欢迎指正错误的地方 要理...

  • JS原型与原型链

    1.原型(公用属性) 2.原型链 关于原型链,你需要的知道的是:var XXX=new YYY()XXX的类型是对...

  • 使用原型链来构建项目架构

    使用原型链来构建项目架构 原型和原型链 一点废话 ​ 现在网上关于原型链这一部分的博客大多是从类继承模型开始说...

  • 关于原型链

    笔记重点: 根部的 Object.prototype == null;空函数._proto_ == Object....

  • 关于原型链

    原型链的基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法。 原型链的基本概念:每个构造函数都有一个原...

  • 关于原型链

    一、对象 要理解原型链,还要先从JavaScript的对象说起。在js中,对象分为两类,一类是函数对象,一类是普通...

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

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

网友评论

    本文标题:关于原型链

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