当前位置: 首页 > news >正文

原型链(回顾)

  • 概念
  • prototype
  • __proto__
  • 原型链查找机制
  • 万物皆对象
  • 判断私有/共有属性方法
  • Object.prototype.prototype === null
  • Object.create(proto, [propertiesObject])
  • 给类的原型上扩展属性方法的4种方法
  • Fn.prototype.xxx = xxx
  • Object.prototype.xxx = xxx
  • f1.proto.xxx = xxx
  • 原型重定向

概念

原型:每个函数都有一个属性(原型对象):prototype ==》对象
构造函数:在prototype原型对象中,默认存在一个内置属性:constructor ==》函数
属性值就是当前函数本身,可修改
原型链:每个对象都具有一个属性:__proto__ ==> 对象
属性值就是当前实例所属类的prototype原型对象

原型链查找机制

  1. 首先找自己的私有属性,私有属性有,则调取私有属性
  2. 如果没有,默认基于__proto__原型链,找所属类prototype原型对象上的公共属性和方法
  3. 如果没有,则沿着prototype原型对象的__proto__原型链继续往上找
    直到找到Object.prototype原型对象为止
    在这里插入图片描述

万物皆对象

JS的所有值(除了undefined,null),基于__proto__原型链,都能找到Object.prototype原型对象,都是对象类的实例,也就是对象

Object.prototype.proto === null

Object的prototype原型对象是所有对象的基类,__proto__原型链属性为 null

Object.create(proto,[propertiesObject])

定义:创建一个新对象
参数1:指定该对象的prototype原型对象,必须为对象或null
参数2:传入一个对象(描述对象),默认为undefined

var obj = Object.create({ a: 1 }, {// foo会成为所创建对象的数据属性b: {writable: true,//是否可重写configurable: true,//是否可枚举enumerable: true,//是否可删除和修改特征value: "hello"//属性的值},// bar会成为所创建对象的访问器属性c: {get: function () { return 10 },// 取值器set: function (value) { // 赋值器console.log("设置的值为", value);}}
})

Object.create(null)

定义:创建一个所属类的prototype原型对象为null的空对象

var obj = Object.create(null);
console.log(obj.prototype);//undefined  对象没有pototype这个属性
console.log(obj.__proto__);// undefined 

给类的原型上扩展属性方法的4种方法

  1. Fn.prototype.xxx = xxx
    向默认开辟的堆内存中扩展属性方法
  2. Object.prototype.xxx = xxx
    内置类原型上扩展方法
  3. f1.proto.xxx = xxx
    基于实例的所属类的原型对象上扩展属性方法
    注意:IE中,禁止操作__proto__
  4. 原型重定向
    手动开辟一个堆内存赋值给 fn.prototype

例题
经典题目1
经典题目2

相关文章:

原型链(回顾)

概念prototype__proto__原型链查找机制万物皆对象判断私有/共有属性方法Object.prototype.prototype nullObject.create(proto, [propertiesObject])给类的原型上扩展属性方法的4种方法Fn.prototype.xxx xxxObject.prototype.xxx xxxf1.proto.xxx xxx原型重定向 概念 原型…...

DS内排—2-路归并排序

目录 题目描述 AC代码 题目描述 输入一组字符串,用2-路归并排序按字典顺序进行降序排序。 输入 测试次数t 每组测试数据:数据个数n,后跟n个字符串,字符串不含空格。 输出 对每组测试数据,输出2-路归并排序的每…...

深度账户抽象(Account Abstraction)第 3 部分:Wallet创建

Wallet创建 我们还没有解决的是每个用户的钱包合约最初是如何在区块链上结束的。部署合约的“传统”方式是使用 EOA 发送包含合约部署代码的且没有收件人的交易。这在这里会非常令人不满意,因为我们刚刚做了很多工作来实现它,所以有人可以在没有 EOA 的情况下与链交互。如果用…...

代码分享:面波数据快速成图

代码分享:面波数据快速成图 前言 目前,物探数据主要用surfer软件成图,surfer软件具有强大的插值和绘图功能,成图比较美观。但是,生产过程中大量的物探数据,依靠excel和surfer来成图耗费人力时间成本。本博…...

常见数据结构

一. 数据结构概述、栈、队列 1. 数据结构概述 2. 栈数据结构的执行特点 3. 常见数据结构之队列 二. 常见数据结构之数组 数组它就是内存中的一块儿连续区域。数组变量存的是数组在堆内存当中的起始地址。数组查询任意索引位置的值耗时相同,数组根据索引查询速度快。…...

Mycat

Mycat 1.概述 1.Mycat是数据中间件2.中间件:连接软件组件和应用的计算机软件,便于软件和各部件的交互3.数据中间件:连接Java应用程序与数据库的软件2.适用场景 1.Java与数据库紧耦合(直接连接)2.高访问量高并发对数据库压力(集群)3.读写请求数据不一致(读写分离+主从复制)3.…...

Java 编写Vue组件(VueGWT的初尝试)

在之前,我曾写过这样的文章《不会前端没事,用GWT Boot和Spring Boot构建Web程序》,这篇文字使用的Domino UI来做前端页面,由于现在更流行VUE,并且VUE的页面更具现代化,所以我尝试了一下VueGWT。 VueGWT 有…...

【第二章 @RequestMapping注解(value,method,params属性),springMVC支持ant风格的路径,支持路径中的占位符】

第二章 RequestMapping注解(value,method,params属性),springMVC支持ant风格的路径,支持路径中的占位符 1. RequestMapping注解: (1) RequestMapping注解的作用就是将请…...

QML Text详解

1.简介 文本项可以显示普通文本和富文本。 2.示例 示例1:一个简单的text,可以设置字体颜色、大小等。 Window {visible: truewidth: 400height: 400title: qsTr("Hello World")Rectangle{width: 200height: 200border.width: 2Text {text: …...

xxl-job启用https访问

一、准备证书 1.进入想要生成证书的目录 2.在路径中输入cmd,点击回车 (1) (2) 3.输入命令keytool -genkeypair -alias "boot" -keyalg "RSA" -keystore "seek.keystore" 4.输入信息&#xff0c…...

2023FL Studio最新中文版电子音乐、混音和母带制作DAW

水果具有独特的底层逻辑,其开创了编曲“块”的思维。用FL Studio编曲的流程是在把一个样式编辑好,然后将编辑好的样式当做音频块,在播放列表中像“搭积木”一样任意编排,形成一首歌,这种模式非常利于电子音乐编曲。 2…...

pytorch 35 yolov5_obb项目解读+使用技巧+调优经验(提升map)

yolov5_obb是一个用于旋转框预测的开源项目,项目地址为https://github.com/hukaixuan19970627/yolov5_obb。在使用yolov5_obb进行训练时,可能存在训练后精度不达标。使用yolov5_obb项目一定要对yolov5_obb的基本实现和关键部分要有所了解,同时对于使用过程中的参数设置,数据…...

OpenMv H7 口罩识别--毕业设计学习记录

刚开始都不知道自己的摄像头是OpenMv H7的还是OpenMv H7 Plus来的(白嫖实训室的,其实大概率猜到是H7来的,主要是不死心),后面问了一下ChatGPT。 总结大概就是: 1、都是STM32H743 主控,但是频率的MCU(480MHz…...

有什么比较好的bug管理工具?5款热门工具推荐

工具再优秀,适合自己才最重要。 为尽量讲透这个问题,本文的行文结构我先整理如下: 1、为什么需要bug管理工具? 2、好的bug管理工具的标准是什么? 3、好的bug管理工具推荐(5款) 4、如何挑选适合…...

第五章 opengl之摄像机

OpenGL摄像机摄像机/观察空间Look At矩阵自由移动移动速度视角移动欧拉角鼠标输入缩放补充:摄像机类摄像机 OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的…...

nginx配置详解(容器、负载)—官方原版

一、概述本指南对nginx进行了基本介绍,并描述了一些 可以用它完成的简单任务。 据推测,nginx已经安装在阅读器的机器上。 本指南描述了如何启动和停止nginx,并重新加载其 配置,解释结构 的配置文件,并描述了如何设置 n…...

2023年中职网络安全竞赛——CMS网站渗透解析

需求环境可私信博主 解析如下: CMS网站渗透 任务环境说明: 服务器场景:Server2206(关闭链接) 服务器场景操作系统:未知 1.使用渗透机对服务器信息收集,并将服务器中网站服务端口号作为flag提交; Flag:8089...

SQL 窗口函数详解

SQL窗口函数详解 窗口函数的主要作用是对数据进行分组排序、求和、求平均值、计数等。 一、窗口函数的基本语法 <分析函数> OVER ([PARTITION BY <列清单>] ORDER BY <排序用列清单> [ROWS BETWEEN 开始位置 AND 结束位置])理解窗口函数的基本语法&#xff…...

Android 12系统源码_SystemUI(六)显示和隐藏最近任务

前言 Android12对最近任务做了调整&#xff0c;将原本处于SystemUI模块的最近任务转移到了Launcher3QuickStep应用中。 本篇文章我们会结合源码一起来梳理一下最近任务的显示流程。 一、SystemUI模块显示最近任务的相关代码 1、在SystemUI模块调用CommandQueue的showRecentA…...

Docekr三剑客之 Docekr compose

写在前面 Docker三剑客Docker Compose、Docker Machine、Docker Swarm分别是Docker官方开源的三个项目。有着不同的功能&#xff1a; Docker Compose负责实现对 Docker 容器集群的快速编排Docker Machine负责在多种平台上快速安装 Docker 环境Docker Swarm提供 Docker 容器集…...

AI建站案例:一家外贸工厂如何用“AI+系统”拿下海外订单

AI建站案例&#xff1a;一家外贸工厂如何用“AI系统”拿下海外订单【引言&#xff1a;别让网站成为“电子名片”】我们看过太多外贸工厂的网站&#xff1a;花了几千块&#xff0c;做得金碧辉煌&#xff0c;但一年下来询盘屈指可数。问题不在产品&#xff0c;而在“数字化基建”…...

解决ClaudeCode频繁封号与Token不足问题转向稳定聚合平台

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 解决ClaudeCode频繁封号与Token不足问题转向稳定聚合平台 对于依赖Claude Code进行编程辅助的开发者而言&#xff0c;服务中断和资…...

nn.Flatten():从参数解析到多维张量展平实战

1. 理解nn.Flatten()的核心作用 当你第一次接触深度学习框架中的nn.Flatten()时&#xff0c;可能会觉得这个函数简单到不需要解释——不就是把多维数据压平吗&#xff1f;但真正用起来就会发现&#xff0c;里面的门道比想象中多得多。我在实际项目中就遇到过因为错误理解展平维…...

基于MCP协议与本地全文检索的电子元件文档AI查询系统

1. 项目概述&#xff1a;为LLM构建一个本地化的电子元件文档搜索引擎如果你是一名嵌入式工程师、硬件开发者&#xff0c;或者像我一样&#xff0c;经常需要和德州仪器&#xff08;TI&#xff09;、意法半导体&#xff08;ST&#xff09;、亚德诺&#xff08;ADI&#xff09;这些…...

Python 3.14.5 发布:多项改进,垃圾回收器回滚,还有这些新特性!

Python 3.14.5 发布Python 3.14.5 现已发布&#xff0c;这是 3.14 的第五个维护版本。自 3.14.4 以来&#xff0c;包含约 154 项错误修复、构建改进和文档更改。垃圾回收器回滚值得注意的是&#xff0c;Python 3.14.5 中的垃圾回收器 (GC) 发生了变化。由于一些原因&#xff0c…...

2026 年行业真相:履职规范背后的管理秘密

现场冲突&#xff1a;安全与进度的激烈碰撞在工程建设领域&#xff0c;安全与进度的冲突一直是个老大难问题。就拿上海中心的建设来说&#xff0c;如此庞大复杂的项目&#xff0c;施工过程中安全管理难度极大。在某些施工阶段&#xff0c;为了赶进度&#xff0c;部分施工人员可…...

3步快速上手:用dupeGuru轻松清理重复文件,释放宝贵磁盘空间

3步快速上手&#xff1a;用dupeGuru轻松清理重复文件&#xff0c;释放宝贵磁盘空间 【免费下载链接】dupeguru Find duplicate files 项目地址: https://gitcode.com/gh_mirrors/du/dupeguru 你是否经常为电脑中堆积如山的重复文件而烦恼&#xff1f;照片、文档、音乐文…...

Fujirebio宣布全自动Lumipulse® G pTau 217血浆检测试剂盒获得CE认证

H.U. Group Holdings Inc.及其全资子公司Fujirebio今日宣布&#xff0c;Fujirebio Europe N.V.已依据《欧盟(EU) 2017/746体外诊断医疗器械法规》(IVDR)取得Lumipulse G pTau 217血浆检测试剂盒的CE认证。该化学发光酶免疫分析(CLEIA)检测可对人体血浆(K2 EDTA)中的苏氨酸217磷…...

微信防撤回终极指南:3分钟永久保存重要信息

微信防撤回终极指南&#xff1a;3分钟永久保存重要信息 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/GitHub_T…...

人机冲突类型学:基于意义行为原生论与自感痕迹论的系统性分析

人机冲突类型学&#xff1a;基于意义行为原生论与自感痕迹论的系统性分析 摘要&#xff1a;本文旨在构建一种新的人机冲突类型学&#xff0c;其理论基础是岐金兰的“意义行为原生论”与“自感痕迹论”。不同于现有研究从外部功能或伦理原则出发分类冲突&#xff0c;本文提出&am…...