美文网首页
JavaScript 原型和原型链

JavaScript 原型和原型链

作者: 饥人谷_风争 | 来源:发表于2017-12-10 22:28 被阅读0次

原型

在 JavaScript 中,我们所称的原型有两个使用语境:

  • 原型关系
  • 原型属性

原型关系指对象的原型对象,且该对象会继承原型对象的所有属性。
原型属性指函数(函数本质上也是对象)的原型属性(.prototype)。

原型关系

每一个对象都有自己的原型对象(Object除外),对象会继承原型对象的所有属性。
在浏览器的控制台中,可以使用 .__proto__来查看一个对象的原型对象。

let obj = {}
console.dir(obj.__proto__)
console.dir(obj.__proto__)打印出的原型对象
只要是对象(Object除外),就一定拥有一个.__proto__属性,指向该对象的原型对象。
一般情况下,对象都是由构造函数构造出来的,该对象的.__proto__指向该构造函数的.prototype属性。

let obj = new Number(1)
obj.__proto__ === Number.prototype
对象.__proto__ === 函数.prototype

一般的对象还有一个.constructor属性指向该对象的构造函数。

原型属性

每一个函数都会有一个原型属性(.prototype),该原型属性指向该函数构造的对象的原型对象(.__proto__)。
同样可以用控制台打出来

let num = new Number(1)
num.__proto__ === Number.prototype  // true
console.dir(Number.prototype)
Number.prototype

原型链

原型链描述对象之间互相引用的关系。
获取一个对象的属性时,JavaScript引擎先从对象自身查找,如果没找到,就到这个对象的原型对象上查找,还没有找到就再继续到原型对象上查找,直到查找到这个属性或者原型链的终点。
所有原型链的最后一个原型对象都是 Object.prototype,Object.prototype的原型是 null

let array = new Array(1,2)
console.log(array)
array.__proto__ === Array.prototype                       // true
Array.prototype.__proto__ === Object.prototype    // true
Object.prototype.__proto__ === null                      // true
原型链示例

相关文章

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

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

  • 原型和原型链篇

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

  • 原型、原型链

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

  • js原型、原型链、继承的理解

    一、原型、原型链 原型是Javascript中的继承的基础,JavaScript的继承主要依靠原型链来实现的。 原...

  • 【javascript】继承

    javascript只支持实现继承,而且继承主要是依靠原型链来实现的。 原型链 javascript将原型链作为实...

  • 4.4 JavaScript

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

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

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

  • javascript碎片知识001

    javascript中的对象(原型,原型链) 什么是原型? 原型是JavaScript中的继承的基础,JavaSc...

  • JS进阶(1) —— 人人都能懂的构造函数

    大家都知道原型和原型链是 JavaScript 中最经典的问题之一,而构造函数又是原型和原型链的基础,所以先了解清...

  • JavaScript原型对象与原型链

    一、前言 原型和原型链是 JavaScript中不可避免需要碰到的知识点,在刚开始学习 JS 时,原型和原型链都是...

网友评论

      本文标题:JavaScript 原型和原型链

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