美文网首页
js原型、原型链及继承

js原型、原型链及继承

作者: Fairy_妍 | 来源:发表于2022-02-09 21:15 被阅读0次

这是本人珍藏的图,关系一目了然。

原型链&构造函数.png
  • 显式原型prototype:函数/方法拥有一个prototype属性,指向函数的原型对象。

    (通过Function.prototype.bind方法构建的函数没有prototype属性)

  • 隐式原型__proto__:任意对象都有一个内置属性[[prototype]],大多浏览器支持通过__proto__来访问,在ES5中有了对这个内置属性的标准Get方法:Object.getPrototypeOf()

    (Object.prototype 这个对象是个例外,它的__proto__值为null ) (到终点)

  • 原型链:这些对象及原型对象通过__proto__属性链接形成的链路结构就行原型链。原型链是由多级父对象逐级继承形成的。原型链保存着一个对象可用的所有属性和方法。原型链控制着属性和方法的使用顺序:就近原则--先子级后父级

  • 关系:instance.constructor.prototype = instance.__proto__


1. {}.constructor === Object  // true
2. {}.__proto__ === Object.prototype  // true
// 任意对象的__proto__都指向Object.prototype
// constructor和prototype是相互反指的:构造函数和原型对象的互指的
// Object.prototype是一个对象,但是其指向null终点

function Fn(){}  // true
3. Fn.constructor === Function  // true
4. Fn.__proto__ === Function.prototype  // true
5. Fn.__proto__ === Fn.constructor.prototype
// 任意函数的__proto 是 其构造函数(Function)的prototype

const foo = new Fn()
// foo是对象,通过new构建的都是对象,原型(prototype)也都是对象
6. foo.constructor === Fn  // true
7. foo.__proto__ === Fn.prototype  // true
8. foo.__proto__ === foo.constructor.prototype
// new出来的对象的__proto 是 其构造函数(继承来的)的prototype

相关文章

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • js基础之实现继承的几种方式

    js 实现继承的方式有: 原型链继承; 构造函数继承; 组合继承(原型链继承 + 构造函数继承)(最常用);(原型...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • js实现继承的几种方式

    js实现继承有几种方式,这里我们主要探讨 原型链继承 构造继承 组合继承(原型链和构造继承组合到一块,使用原型链实...

  • 浅析JS继承方法

    JS 实现继承的方法有:1.原型链继承2.构造函数继承3.组合继承(原型链继承 + 构造函数继承)4.原型式继承(...

  • js继承

    js继承js 继承-简书 原型链实现集继承 上面的代码实现原型链继承最重要的son.prototype=new f...

  • Js面向对象

    一、Js面向对象 二、Js原型及原型链 1、原型 JavaScript 的每个对象都继承另一个父级对象,父级对象称...

  • js原型、原型链及继承

    这是本人珍藏的图,关系一目了然。 显式原型prototype:函数/方法拥有一个prototype属性,指向函数的...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • javascript原型链及继承的理解

    javascript:void(null)# 原型链及继承的理解 定义函数 继承 继承构造函数 继承静态属性 继承原型链

网友评论

      本文标题:js原型、原型链及继承

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