原型和原型链

2023-11-19

好久没记了有点忘记了,来记录一下。

1、函数和对象的关系:对象都是通过函数创建的,函数也是一个对象。

2、原型和原型链

        1.原型:原型分为两种

  • prototype:每一个函数都会有prototype属性,它指向函数的原型对象,被称为显式原型
  • __proto__:每一个实例对象都会有__proto__属性,它指向创建该对象的函数的原型对象,被称为隐式原型

        2.原型链:每个对象都有一个_proto_,它指向创建该对象的函数的原型对象;然后这个原型对象又有一个_proto_,指向创建它的函数的原型对象,这样逐层深入直到顶层对象Object的原型对象,这就形成了一个原型链。

3、Function和Object

1.Function是最顶层的构造函数,它创建了所有的函数,包括它自己

2.Object是最顶层的对象,所有对象都继承Object的原型对象,它也是被Function创建出来的

4、分类:

        1.普通的函数和对象:

(1)函数.prototype:指向函数的原型对象。

(2)函数._proto_===Function.prototype

(3)函数.prototype._proto_===Object.prototype

(4)对象._proto_:指向创建该对象的函数的原型对象。

        2.顶层的函数和对象:

(1)Object._proto_===Function.prototype

(2)Object.prototype._proto_===null

(3)Function._proto_===Function.prototype

(4)Function.prototype._proto_===Object.prototype

原文链接:https://blog.csdn.net/qq_27984747/article/details/127399888

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

原型和原型链 的相关文章

  • Array.prototype.slice.call()方法详解

    slice 用来截取截取字符串方法 Array javascript的一个引用类型 其原型prototype上有一个方法叫slice call和apply 用来改变对象中函数内部的this引用 使得函数可以随便换 妈妈 为什么不直接用 ar
  • 23种设计模式

    设计模式主要分为三大类 1 创建型模式 2 结构型模式 3 行为型模式 1 创建型模式 创建型模式关注对象的创建过程 1 工厂方法模式 Factory Method Pattern 用于创建对象的接口 让子类决定实例化哪一个类 工厂方法模式
  • 【JavaScript高级】手写apply()、call()、bind()

    文章目录 手写之前 apply call 封装函数实现apply和call bind 参考 手写之前 我们有一个函数foo 已知 foo的隐式原型是绑定在Function的显式原型上的 Function是一个构造函数 function fo
  • Java创建型模式之原型模式

    原型模式 所谓原型模式 就是以一个对象为原型 返回这个对象的克隆 而不是创建一个新的对象 原型对象的优点 在Java中创建一个新对是昂贵和资源密集型 原型对象有助于创建更好性能的重复对象 原型模式的核心就是克隆 克隆又分为浅克隆 深克隆 1
  • 第二十三节:DOM对象

    DOM概述 DOM 是 JavaScript 操作网页的接口 全称为 文档对象模型 Document Object Model 它的作用是将网页转为一个 JavaScript 对象 从而可以用脚本进行各种操作 比如增删内容 浏览器会根据 D
  • 原型模式例题——订单处理系统

    文章目录 原型模式例题 订单处理系统 思路 UML 图 代码 产品类 订单类 客户端 原型模式例题 订单处理系统 现在有一个订单处理系统 里面有一个保存订单的业务功能 需求 每当订单的预定产品数量超过1000的时候 就需要把你单拆成两份订单
  • prototype原理

    一 对于prototype的初步认识 对于JS而言一切皆为对象 那么创建对象是通过原型链的方式进行创建的 原型模式 由于最近在细挖js的基础知识 让本人更能够深层次地去理解js地底层原理 为了提升自身的技术能力 需要接触理解原型链的原理 1
  • js 判断数据类型最常用的方法

    1 最常用方法 typeof typeof 是最常用判断数据类型的方法 只能判断基本数据类型 返回值有7种 number string boolean null undefined symbol es6新增 2 判断对象类型 instanc
  • JS new操作符具体做了什么?

    1 意义 在JavaScript中 new 操作符用于创建一个新的对象实例 具体来说 new 操作符会执行以下步骤 JavaScript中的new操作符是一个非常重要的操作符 它用于创建一个新的对象实例 2 实例化步骤 创建一个新的空对象
  • 设计模式(4)-原型模式(Prototype Pattern)

    所谓原型模式就是从原型实例去复制克隆出新的实例 而绝不是去从类去实例化 就好比打飞机的游戏 我们操作的主角飞机只有一架 可以用单例模式去实现 而敌机好多都是一样的 如果每出一个敌机我们就去new一个敌机的对象 一下来个三十个 就去new三十
  • [Typescript]基础篇之 String 对象

    基础篇之 String 对象 String 对象简介 与 string 区别 String 定义 属性 方法 属性的使用 方法的使用 lastIndexOf localeCompare replace search slice split
  • cpp: Prototype Pattern

    Gold h 此文件包含 Gold 类 原型模式 Prototype Pattern C 14 2023年5月1日 涂聚文 Geovin Du Visual Studio 2022 edit pragma once ifndef GOLD
  • JavaScript设计模式(一)——构造器模式、原型模式、类模式

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 正逐渐往全干发展 个人状态 研发工程师 现效力于中国工业软件事业 人生格言 积跬步至千里 积小流成江海 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 3项目实战 Node js
  • Java设计模式-原型模式

    原型模式 在有些系统中 存在大量相同或相似对象的创建问题 如果用传统的构造函数来创建对象 会比较复杂且耗时耗资源 用原型模式生成对象就很高效 原型模式的定义与特点 原型 Prototype 模式的定义如下 用一个已经创建的实例作为原型 通过
  • for in 循环详解

    for i 循环的作用 for in 语句以任意顺序迭代一个对象的除 Symbol 以外的可枚举属性 包括继承的可枚举属性 for in 是为遍历对象属性而构建的 不建议与数组一起使用 在处理有 key value 数据 用于获取对接的 k
  • 设计模式-原型模式

    文章目录 前言 什么是原型模式 Java中的原型模式 使用场景 优缺点 结论 前言 在软件开发中 设计模式是一种重要的思想和方法 用于解决常见的编程问题 原型模式是其中之一 它允许我们通过复制现有对象来创建新对象 而无需依赖具体类的构造函数
  • js高级 7.原型链继承

    原型链继承 套路 定义父类型构造函数 给父类型的原型添加方法 定义子类型的构造函数 创建父类型的对象赋值给子类型的原型 将子类型原型的构造属性设置为子类型 给子类型原型添加方法 创建子类型的对象 可以调用父类型的方法 关键 子类型的原型为父
  • 设计模式--原型模式

    原型模式 属于创建型模式 基本原理 又称为克隆模式 拷贝本身对象 可以直接使用语言中的拷贝构造 主要流程 在构建对象的时候实现一个对本身的拷贝函数 特别注意 要有对应的销毁方法 include
  • 原型和原型链

    好久没记了有点忘记了 来记录一下 1 函数和对象的关系 对象都是通过函数创建的 函数也是一个对象 2 原型和原型链 1 原型 原型分为两种 prototype 每一个函数都会有prototype属性 它指向函数的原型对象 被称为显式原型 p
  • 设计模式 原型模式 与 Spring 原型模式源码解析(包含Bean的创建过程)

    原创 疯狂的狮子Li 狮子领域 程序圈 2023 12 19 10 30 发表于辽宁 原型模式 原型模式 Prototype模式 是指 用原型实例指定创建对象的种类 并且通过拷贝这些原型 创建新的对象 原型模式是一种创建型设计模式 允许一个

随机推荐

  • go的单元测试介绍

    一 问题引出 在我们工作中 我们会遇到这样的情况 就是去确认一个函数 或者一个模块的结果是否正确 例如 我们会遇到测试下面函数是否正确 func addUpper n int int res 0 for i 1 i lt n i res i
  • 转JSON报错怎么办?增加发生js错误时候的代码强壮性

    在js中有些内置方法在使用的时候当传入意外类型参数的时候会报错卡死导致直接让整个项目都跑不起来了 比如 今天 这里就说一个增加代码强壮性的方法 try catch finally 众所周知 try catch 是处理意外错误时候的语句 主要
  • 《R语言实战》学习笔记:第一章 R语言介绍

    R语言实战 学习笔记 第二章 创建数据集 R语言实战 学习笔记 第三章 图像初阶 R语言实战 学习笔记 第四章 基本数据管理 R语言实战 学习笔记 第五章 高级数据管理 R语言介绍 数值运算 age lt c 1 3 5 2 11 9 3
  • 【Zabbix实战之部署篇】Zabbix的分布式监控部署

    Zabbix实战之部署篇 Zabbix的分布式监控部署 一 Zabbix proxy介绍 1 Zabbix proxy简介 2 Zabbix proxy 使用场景 3 Zabbix的分布式监控拓扑 二 检查本地环境 1 本地环境规划 2 检
  • React中文

    1 Hello World 开始React最简单的方式是在CodePen上使用HelloWorld例子 你不需要安装任何东西 你只要在新的标签页中打开并和我们一起看例子 如果你想要使用一个本地开发环境 可参看Installation页 最小
  • Palindrome Partitioning II

    Calculate and maintain 2 DP states pal i j which is whether s i j forms a pal d i which is the minCut for s i n 1 Once w
  • Java NIO实现WebSocket服务器

    简介 在HTTP请求中 服务器往往处于被动的一方 通常都是客户端向服务器发送请求时 服务器才会做出响应 服务器并不会主动向客户端推送消息 因此WebSocket API就为此诞生 WebSocket API是HTML5中的一大特色 能够使得
  • 第三方对接-支付宝支付接入教程

    对接支付宝支付接口 官方文档已经写的很清楚了 但是也有很多小白 第一次对接支付宝支付接口 会有些迷茫 所以我在此写下这篇文章 如果你已经支付宝对应 第一步 创建应用与配置密钥已经熟悉了 这里可以不用看这篇文章了 第一步 创建应用 开发者使用
  • python使用Queue(避坑指南)

    python Queue 常见的队列类别 常见的索取 判断函数 避坑部分 常见的队列类别 class one 普通队列 先进先出 from queue import Queue 导入 temp Queue maxsize 5 申请一个能存放
  • 时间、时间戳互转、日期格式化、获取各种天数

    我们在工作中经常遇到日期格式的转换 比如获取当前时间 转换当前时间格式为2023 09 09 2023 09 09 2023 09 09 18 12 01 时间戳 时间戳转日期 日期转时间戳 获取当前季度 获取上一季度 获取下一季度 获取下
  • java编辑pdf(itextpdf)

    工作上遇到一个小需求 需要在原有的pdf文件上添加一行文字 实现方式如下 引入依赖
  • STM32Cube学习(5)——PWM

    1 引言 单片机 STM32F407ZGT6 仿真器 ST Link V2 开发环境 STM32CubeIDE 1 10 1 功能说明 使用单片机定时器产生PWM实现呼吸灯效果 前情提要 STM32Cube学习 1 点灯 配置 STM32C
  • 使用DataGrip连接SQL Server 2017数据库

    微软的SQL Server数据库是做 NET开发的好朋友 现在最新的版本是2017 SQL Server数据库有自己的Management Studio工具 基本用起来和Visual Studio差不多 当然除了官方的工具之外 其他的数据库
  • Docker安装mysql8.0文档

    第一步需要安装Docker基础环境 具体可以看看这篇 docker基础篇 第二步 拉取mysql8 0的镜像 docker pull mysql 8 0 第三步 镜像启动和文件挂载 复制下面命令执行 33006是对外访问暴露的端口 当然你也
  • python的数据类型有哪些其中哪些是不可变的_python可变数据类型有哪些

    将python3的基本数据类型有六种 Number int float bool complex String List Tuple Dictionary Set 可变数据类型 list dic set 不可变数据类型 Number Str
  • IntelliJ IDEA使用教程

    文章目录 1 IntelliJ IDEA首创项目 2 外观样式 3 类的相关操作 4 模块 1 IntelliJ IDEA首创项目 project 微信主界面 module 下栏 消息 通讯录 发现 我 package 聊天记录 文字 图片
  • SSH密钥过期

    我去 很久没用这个项目 突然发现repo sync 不好用了 发现原来是SSH密钥过期了 1 查看id rsa pub是否存在 ls ssh 2 将里面的东西复制出来 3 重新添加下 SSH Public Key 4 再次运行 repo s
  • 我的和unity3d的小故事1——恶魔射手之鼠标控制移动之input.getaxis("Horizontal")与input.getaxis("Vertical")

    跟着恶魔射手视频学习的过程中遇到的第一个问题是怎么也移动不了 那么问题来了 打印出来是获得的下面两个值都是0 怎么办呢 改edit下面的projectsetting里面的input属性下面两个值的type都改成mouse movement
  • es head 复合查询_【ES进阶】深入理解Elasticsearch检索评分score执行计划及逆向文档词频idf...

    在前面的课程中 通过搭建ELK相关的中间件 以及配置动态mapping结构用于存储我们需要检索的文档信息 我们通过输入关键词进行分词检索然后ES默认通过评分的形式将数据排序好展示给我们 当文档评分越高 那么搜索的结果越靠前 如下图所示 我们
  • 原型和原型链

    好久没记了有点忘记了 来记录一下 1 函数和对象的关系 对象都是通过函数创建的 函数也是一个对象 2 原型和原型链 1 原型 原型分为两种 prototype 每一个函数都会有prototype属性 它指向函数的原型对象 被称为显式原型 p