美文网首页
_proto_ & prototype

_proto_ & prototype

作者: 茂茂爱吃鱼 | 来源:发表于2018-03-24 22:23 被阅读0次

prototype: 函数的固有属性,是一个对象,对象中有一个固定属性constructor指向该函数

prototype.png

__proto__: Object的固有属性,故所有对象均具有该属性,指向创建该对象的函数的prototype

proto.png
函数也是对象,那么问题来了,Object/Function/Array/String/Number/Boolean/Date/RegExp/Error的__proto__指向什么呢?

由于函数是通过new Function()创建的,那么结果就应该是Function.prototype

内置对象的__proto__.png
Function/Array/String/Number/Boolean/Date/RegExp/Error的prototype也是个对象,那么它们的__proto__指向什么呢?

对象是通过new Object()创建的,那么答案应该是Object.prototype

内置对象原型的__proto__.png
Object.prototype.__proto__呢?

这是个特例,指向null

Object原型的__proto__.png
最后说一下instanceof机制
x instanceof y;

沿着x的__proto__找是否与y沿着prototype一致,若一致返回true,反之为false

Function instanceof Function;    // true
Function instanceof Object;      // true

以上表达式等价于下图表达式


instanceof.png

最后献上一张神图


_proto_&prototype.jpg

相关文章

  • JavaScript 原型链学习

    JavaScript prototype 与 _proto_(原型链解析) prototype 概念 protot...

  • JS概念整理

    _proto_ 和 prototype 的区别 任何对象有一个 [prototype] 属性 (隐藏属性), 指向...

  • _proto_ & prototype

    prototype: 函数的固有属性,是一个对象,对象中有一个固定属性constructor指向该函数protot...

  • js中的原型_proto_、原型链、prototype、cons

    _proto_(原型) js中每一个对象都有一个_proto_(原型)对象,它指向他构造函数的prototype(...

  • 面向对象的一些方法

    prototype和_proto_ 原型和原型链 每次new A()都会实例化一个新的A对象, prototype...

  • 关于原型链

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

  • 函数原型

    prototype和_proto_ 基于两个基本概念: 1.prototype是函数(function) 的一个属...

  • prototype和__proto_

    1.在JS里,万物皆对象。方法(Function)是对象,方法的原型(Function.prototype)是对象...

  • 原型和原型链

    _ proto_,隐式原型 对象特有(constructor)prototype 显式原型 函数特有 protot...

  • 学习JavaScript中的原型链式继承

    最近在学习JavaScript的面向对象,被constructor,prototype和_proto_搞到头大,但...

网友评论

      本文标题:_proto_ & prototype

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