美文网首页
JavaScript原型和原型链和constructor简述

JavaScript原型和原型链和constructor简述

作者: acsamson | 来源:发表于2019-05-26 20:19 被阅读0次

所有对象都有自己的原型对象(prototype)。一方面,任何一个对象,都可以充当其他对象的原型;另一方面,由于原型对象也是对象,所以它也有自己的原型。因此,就会形成一个“原型链”(prototype chain)最终都可以上溯到Object.prototype Object.prototype对象有没有它的原型呢?回答Object.prototype的原型是null。null没有任何属性和方法,也没有自己的原型。因此,原型链的尽头就是null。

image

为什么要有原型

就是为了解决共享属性问题

同一个构造函数创建的实例之间是无法共享属性的

image image

判断对象是不是另一个对象的原型

  • instanceof判断是不是原型的`实例``

  • ``isPrototypeOf() || Object.getPrototypeOf()`判断是不是原型

  • hasOwnProperty() || in判断是不是原型中的属性还是实例自己的属性

什么是proto

他是对象的一个属性

instance.constructor.prototype === instance.proto

实例的构造者就是构造函数, 构造函数原型就是等于实例的原型

用来表示所继承的原型是谁

JavaScript 中任意对象都有一个内置属性 [[Prototype]] ,在ES5之前没有标准的方法访问这个内置属性,但是大多数浏览器都支持通过proto来访问

现在已经废弃

不推荐使用

解释下constructor

constructor类似双向链表的front修改原型的时候也要修改constructor

prototype对象有一个constructor属性,默认指向prototype对象所在的构造函数。

constructor属性的作用是,可以得知某个实例对象,到底是哪一个构造函数产生的。

image image image

相关文章

  • JavaScript原型和原型链和constructor简述

    所有对象都有自己的原型对象(prototype)。一方面,任何一个对象,都可以充当其他对象的原型;另一方面,由于原...

  • JavaScript学习笔记之constructor,proto

    引言 在学习JavaScript时,不可避免的接触到了原型和原型链的概念,结果被constructor,proto...

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

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

  • 原型链

    原型链图示 对象拥有原型和构造函数--proto--   原型constructor   构造函数 只有函...

  • 原型和原型链篇

    原型和原型链 1.理解原型设计模式以及JavaScript中的原型规则 原型设计模式JavaScript是一种基于...

  • 2018-11-22

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 构造函数...

  • 22

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 构造函数...

  • 面向对象2

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 构造函数...

  • OOP-2

    JavaScript的面向对象是基于constructor(构造函数)与prototype(原型链)的。 构造函数...

  • 4.4 JavaScript

    4.4.1. 原型链 4.4.1.1. 显式原型和隐式原型   JavaScript的原型分为显式原型(expli...

网友评论

      本文标题:JavaScript原型和原型链和constructor简述

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