原型 / 构造函数 / 实例/原型链

原型( prototype ): ⼀个简单的对象,⽤于实现对象的 属性继承。可以简单的理解成对象 的爹。在 Firefox 和 Chrome 中,每个 JavaScript 对象中都包含⼀个
proto (⾮标准)的属性指向它爹(该对象的原型),可 obj.proto 进⾏访问。 构造函数: 可以通过 new 来 新建⼀个对象 的函数。 实例: 通过构造函数和 new 创建出来的对象,便是实例。 实例通过 proto 指向原
型,通过 constructor 指向构造函数。
以 Object 为例,我们常⽤的 Object 便是⼀个构造函数,因此我们可以通过它构建实例。
// 实例

//const instance = new Object()
//
const instance = new Object()

则此时, 实例为 instance , 构造函数为 Object ,我们知道,构造函数拥有
⼀个 prototype 的属性指向原型,因此原型为:
// 原型

//
const prototype = Object.prototype

实例.proto === 原型 原型.constructor === 构造函数 构造函数.prototype === 原型

//
// 这条线其实是是基于原型进⾏获取的,可以理解成⼀条基于原型的映射线
// 例如: const o = new Object()o.constructor === Object --> trueo.__proto__ = null;
o.constructor === Object --> false
实例.constructor === 构造函数

另外提一下原型链:
原型链: 原型链是由原型对象组成,每个对象都有 proto 属性,指向了创建该对 象的构造函数的原型, proto 将对象连接起来组成了原型链。是⼀个⽤ 来实现继承和共享属性的有限的对象链 属性查找机制: 当查找对象的属性时,如果实例对象⾃身不存在该属性,则沿着原型链往上 ⼀级查找,找到时则输出,不存在时,则继续沿着原型链往上⼀级查找,直⾄最顶级的原 型对象 Object.prototype ,如还是没找到,则输出 undefined ; 属性修改机制: 只会修改实例对象本身的属性,如果不存在,则进⾏添加该属性,如果需要 修改原型的属性时,则可以⽤: b.prototype.x = 2 ;但是这样会造成所有继承于该对象 的实例的属性发⽣改变。

原型 / 构造函数 / 实例/原型链相关推荐

  1. JavaScript高级笔记_002_构造函数和原型

    JavaScript高级笔记_002_构造函数和原型 构造函数和原型 构造函数和原型 概述 构造函数 构造函数的问题 构造函数原型`prototype` 对象原型`__proto__` (四个下划线) ...

  2. 构造函数和原型 - 02

    构造函数和原型 构造函数和原型 1.1 概述 在典型的 OOP 的语言中(如 Java ),都存在类的概念,类就是对象的模板,对象就是类的实例,但在 ES6 之前,JS 中并没用引入类的概念. ES6 ...

  3. JS——构造函数、原型与实例之间的关系 及 原型链 的描述

    本文转载自:https://www.cnblogs.com/sarahwang/p/6870072.html https://blog.csdn.net/u012443286/article/deta ...

  4. 关于对象、构造函数、原型、原型链、继承

    对象: 在传统的面向过程的程序设计中,会造成函数或变量的冗余.而js中对象的目的是将所有的具有相同属性或行为的代码整合到一起,形成一个集合,这样就会方便管理,例如: var person1={name ...

  5. 原型、原型对象、构造函数、原型链理解

    1. 基本概念: "原型属性"也可以叫做"原型"(prototype):所有函数都有prototype,我觉得可以理解为python中的类属性,不需要通过实例, ...

  6. 详解面向对象、构造函数、原型与原型链

    详解面向对象.构造函数.原型与原型链 为了帮助大家能够更加直观的学习和了解面向对象,我会用尽量简单易懂的描述来展示面向对象的相关知识.并且也准备了一些实用的例子帮助大家更加快速的掌握面向对象的真谛. ...

  7. 构造函数的原型和原型链

    转载 https://blog.csdn.net/weixin_44976833/article/details/101322081 构造函数和原型和原型链 1.静态成员和实例成员 1.1静态成员 静 ...

  8. javascript中实例对象和构造函数关系、原型语法、原型链、call实现继承、apply调用函数、bind拷贝函数、拷贝继承、class类、super、严格模式、高阶函数、闭包、递归、es6简介

    实例对象和构造函数的关系及原型: 实例对象是通过构造函数创建出来的,实例对象的构造器constructor就是指向构造函数的:每个实例对象中的同一方法的指向是各不相同的,但是其属性值相同的属性可以相同 ...

  9. ES6/02/创建对象,构造函数和原型,原型和原型链,this指向,类,ES5新增的方法,数组方法,回调函数,ES5新增的字符串方法,ES5中新增的对象方法

    创建对象 1,利用new Object()创建对象 var obj1 =new Object(); 2,利用对象字面量创建对象 var obj2={}; 3,利用构造函数创建对象 function S ...

最新文章

  1. 告别繁琐提升效率,Docker 帮您降低从开发到部署的复杂性
  2. Oracle查询锁表以及杀会话或系统进程来解除锁表操作
  3. 深度学习(二十一)基于FCN的图像语义分割-CVPR 2015-未完待续
  4. std输入参数太多matlab,错误使用函数,输入参数太多怎么解决
  5. c3p0获取连接Connection后的Close()---释疑
  6. 漏洞挖掘 符号执行_简述符号执行
  7. [C++] 用Xcode来写C++程序[6] Name visibility
  8. Python实现多行数据读入
  9. hibernate树
  10. 关于Shell的一些常用命令
  11. 微信小程序可以加服务器上的字体,微信小程序中自定义字体
  12. 19. GD32F103C8T6入门教程-adc使用教程6-外部中断线11触发adc0
  13. php double 类型 浮点数相减
  14. 【论文分享】ACL 2020 信息抽取与问答系统
  15. 拍摄制作360度全景图有哪些技巧?
  16. JSON是什么?对JSON的简单理解
  17. 手把手教你煮一锅水米分明的潮汕砂锅粥
  18. python爬取广州港务局船舶调度总计划
  19. UDS-协议数据单元介绍
  20. GitLab通过CI/CD 实现流水线部署(演示主要是通过shell上传SpringBoot项目)

热门文章

  1. python读取文件内容-Python读取文件内容与存储
  2. 沈向洋、王海峰候选中国工程院院士!计算机领域7位入围增选
  3. 英伟达与 ARM 初携手,英国共建 AI 研究中心
  4. 黄渤高情商:小S和林志林同时掉到水里,你先救谁
  5. 【10分钟】入门人工智能
  6. 正确评估SQL数据库性能,你必须知道的原理和方法!
  7. java中比较两个文件的大小_Java实现获取文件大小的几种方法
  8. python自动翻译excel某一列_【python excel实例教程】怎样用Python将excel的某一列生成一个列表?...
  9. 使用XAMPP轻松建站(下)
  10. “假冒上市”公司再甩锅:我被服务商给骗了