Liang2uv's blog Liang2uv's blog
首页
  • 前端文章

    • JavaScript
    • Vue
    • 面试总结
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 小程序笔记
    • TypeScript笔记
    • 数据结构笔记
    • mongoDB笔记
    • nginx笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • 关于
  • 作品集

Liang2uv

我也想成为前端大佬
首页
  • 前端文章

    • JavaScript
    • Vue
    • 面试总结
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 小程序笔记
    • TypeScript笔记
    • 数据结构笔记
    • mongoDB笔记
    • nginx笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • 关于
  • 作品集
  • 基础
  • 内置对象
  • 面向对象
  • 异步操作
  • DOM
  • 事件
  • 浏览器模型
  • 原型链
    • 概念
  • 继承
  • 闭包
  • 《JavaScript教程》笔记
Liang2uv
2020-01-17

原型链

# 原型链

# 概念

构造函数、实例对象、构造函数的原型对象、Object构造函数、Object原型对象、null

  1. 构造函数和实例对象

    • 通过构造函数创建实例对象
  2. 构造函数和构造函数的原型对象

    • 构造函数里面具有该构造函数的原型对象prototype
    • 构造函数的原型对象的 constructor 指向了构造函数
  3. 实例对象和构造函数的原型对象

    • 实例对象中的 __proto__ 指向了它的构造函数的原型对象 prototype ,即: p.__proto__ === Person.prototype
  4. 构造函数的原型对象和Object原型对象

    • 构造函数的原型对象Person.prototype里面有__proto__属性,说明原型对象也是一个对象,说明是被某个构造函数实例化出来的,这个构造函数就是Object构造函数,所以构造函数的原型对象的__proto__(注意,不是构造函数的__proto__) 指向Object构造函数的原型对象prototype,即:Person.prototype.__proto__ === Object.prototype
  5. Object原型对象和null

    • Object原型对象也是个对象,但是里面没有__proto__属性,所以Object.prototypr.__proto__ === null,即Object原型对象的__proto__指向了null

总结:

  • 实例对象的原型对象等于其构造函数的原型对象,即:p.__proto__ === Person.prototype

  • 构造函数的原型对象的原型对象等于Object构造函数的原型对象,即:Person.prototype.__proto__ === Object.prototype

  • 实例对象的原型对象的原型对象等于Object构造函数的原型对象,即:p.__proto__.__proto__ === Object.prototype

  • Object原型对象的原型对象为null,即:Object.prototype.__proto__ === null

#javascript
上次更新: 2020/12/06, 21:12:00
浏览器模型
继承

← 浏览器模型 继承→

最近更新
01
第十章:排序
11-05
02
第九章:查找
11-05
03
第八章:图
11-05
更多文章>
Theme by Vdoing | Copyright © 2020-2021 Liang2uv | 桂ICP备19012079号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式