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

简单说一下原型与原型链

文章目录

    • 原型
    • 原型链

原型

简单来说原型就像是对象的 “爸爸”,每个对象都有一个原型。当你创建一个对象时,这个对象就会有一个内部链接,指向它的原型。你可以把原型想象成对象的一种模板,对象可以从中继承属性和方法。

举个例子,如果有一个狗类的原型,那么通过这个原型,你可以创建很多个实际的狗对象,它们都可以共享一些相同的特征和行为,比如都有四条腿、会叫等。

原型链

原型链是一种对象之间的关系链,通过这个链条,对象可以访问到它的原型,以及原型的原型,形成一条链条直到最顶层的对象。

举个例子,假设你有一个具体的狗对象,但它并没有某个属性,JavaScript 就会帮你查找这个属性是否存在于它的原型上,如果还没有,就会继续往上查找,直到找到为止。这种查找的过程就是原型链的工作机制。

原型链的顶端是所有对象的祖先,即 Object 对象。所有对象都有一个共同的原型,而这个原型就是 Object.prototype。

假设有一个动物类的原型,它有一个共同的属性 eat 表示吃的行为。

// 动物类的原型
const animalPrototype = {eat: function() {console.log('动物正在吃');}
};

通过原型创建狗对象的例子:
通过这个原型创建狗对象,狗对象还可以有自己的属性和方法,比如 bark 方法表示狗叫的声音。

// 通过动物类的原型创建狗对象
const dog = Object.create(animalPrototype);
dog.bark = function() {console.log('汪汪汪');
};// 狗对象调用共同的 eat 方法
dog.eat(); // 输出:动物正在吃// 狗对象调用自己的 bark 方法
dog.bark(); // 输出:汪汪汪

这样,通过原型,我们可以实现对共同特征的共享,并在每个对象中添加自己独特的属性和方法。这就是原型的基本用法。

简单来说,原型是对象的 “爸爸”,它定义了对象的基本特征和行为。原型链是一种通过对象之间的原型关系建立的链条,让对象可以共享和继承彼此的特征和行为。

相关文章:

简单说一下原型与原型链

文章目录 原型原型链 原型 简单来说原型就像是对象的 “爸爸”,每个对象都有一个原型。当你创建一个对象时,这个对象就会有一个内部链接,指向它的原型。你可以把原型想象成对象的一种模板,对象可以从中继承属性和方法。 举个例子…...

11Spring IoC注解式开发(上)(元注解/声明Bean的注解/注解的使用/负责实例化Bean的注解)

注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 注解开发的优点:提高开发效率 注解开发的缺点:在一定程度上违背了OCP原则,使用注解的开发的前提是需求比较固定,变动较小。 1 注解的注解称为元注解 自定义一个注解: package com.sunspl…...

k8s 部署Jenkins项目

1、基于helm 部署jenkins 要求:当前集群配置了storageClass,并已指定默认的storageClass,一般情况下,创建的storageClass即为默认类 指定默认storageClass的方式 # 如果是新创建默认类: apiVersion: storage.k8s.io/v1…...

#每日一题#力扣#2085.统计出现过一次的公共字符串

给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 示例 1: 输入:words1 [“leetcode”,“is”,“amazing”,“as”,“is”], words2 [“amazing”,“leetcode”,“is”] 输出:…...

Python系列(1):简洁优雅,功能强大的编程语言

Python:简洁优雅,功能强大的编程语言 一、Python的特点二、Python的应用领域 在当今的编程世界中,Python已经成为了一种无处不在的语言。它不仅简单易学,而且功能强大,支持多种编程范式,包括面向对象编程、…...

HarmonyOS应用开发学习笔记 arkTS自定义弹窗(CustomDialog)简单使用 arkTS弹出框回调、监听

HarmonyOS应用开发学习笔记 arkTS自定义弹窗(CustomDialog)简单使用 1、CustomDialog装饰器用于装饰自定义弹框 1、定义弹出框 CustomDialog CustomDialog export struct CustomDialogExample {controller: CustomDialogControllerbuild() {Column() {…...

RabbitMQ(六)消息的持久化

目录 一、简介1.1 定义1.2 消息丢失的场景 二、交换机的持久化方式一:直接 new方式二:channel.exchangeDeclare()方式三:ExchangeBuilder【推荐】 三、队列的持久化方式一:直接 new方式二:channel.queueDeclare()方式三…...

mybatisplus配置

一、新建项目&#xff1a;com.saas.plusdemo 二、配置pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…...

node-sass@4.7.2 postinstall: `node scripts/build.js`

Can‘t find Python executable “D:\Python36\python.EXE“, you can set the PYTHON env variable.-CSDN博客 gyp ERR! build error gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1 gyp ERR! stack at Chil…...

pyDAL一个python的ORM(9) pyDAL的嵌套查询

假设有以下两个表&#xff1a; db.define_table(person,Field(id, string), Field(‘name, string), Field(‘dept, string)) db.define_table(things,Field(id, string), Field(‘name, string), Field(‘owner, string)) 一、使用belongs进行嵌套查询 我们查询要求&#…...

融资项目——EasyExcel操作Excel文件

EasyExcel是Alibaba集团开源的EasyExcel技术&#xff0c;该技术是针对Apache POI技术的封装和优化&#xff0c;主要解决了POI技术的耗内存问题&#xff0c;并且提供了较好的API使用。不需要大量的代码就可以实现excel的操作功能。 1.EasyExcel的配置 首先引入依赖&#xff0c;…...

OAI openair3-NAS-UE-EMM代码解读(续)

文件路径openair3/NAS/UE/EMM/emm_main.c 714行之后 1.名称&#xff1a;emm_min_get_registered_plmn&#xff08;&#xff09; 获取当前注册PLMN的标识&#xff1b; 输入&#xff1a;format&#xff1a;PLMN标识符的字符串表示的请求格式&#xff1b; 输出&#xf…...

SQL-条件查询与聚合函数的使用

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…...

Qt移植曲线显示

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、确定文件组成&#xff1f;1. 复制新文件2.新建ui窗口 二、实际操作2.1 新建Ui窗口&#xff0c;要添加带.h的否则跳转错误2.2添加文件到.h2.3 添加文件cpp 三…...

基于springboot生鲜交易系统源码和论文

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括软件架构模式、整体功能模块、数据库设计。本项…...

vue中鼠标拖动触发滚动条的移动

前言 在做后端管理系统中&#xff0c;像弹窗或大的表单时&#xff0c;经常会有滚动条的出现&#xff0c;但有些时候如流程、图片等操作时&#xff0c;仅仅使用鼠标拖动滚动条操作不太方便&#xff0c;如果使用鼠标拖拽图片或容器来触发滚动条的移动就比较方便了 功能设计 如…...

1、理解Transformer:革新自然语言处理的模型

目录 一、论文题目 二、背景与动机 三、卖点与创新 四、解决的问题 五、具体实现细节 0. Transformer 架构的主要组件 1. 注意力、自注意力&#xff08;Self-Attention&#xff09;到多头注意力&#xff08;Multi-Head Attention&#xff09; 注意力到底是做什么的&…...

Acwing847 图中点的层次(bfs)

这道题用的是bfs&#xff0c;一开始用了dfs搜出了答案为4 题目 给定一个 n个点 m 条边的有向图&#xff0c;图中可能存在重边和自环。 所有边的长度都是 1&#xff0c;点的编号为 1∼n。 请你求出 1 号点到 n 号点的最短距离&#xff0c;如果从 1 号点无法走到 n 号点&…...

windows11通过虚拟机安装Ubuntu20.04

VMware 分为 VMware Workstation Pro 和 VMware Workstation Player, Pro体验期后收费&#xff0c;Player则免费。player 早期不能创建虚拟机&#xff0c;只能Pro创建好后给Player运行&#xff0c;而现在player早已加入创建虚拟机功能&#xff0c;所以使用体验上两者相差不大&a…...

时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时序预测对比

时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时间序列预测对比 目录 时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现EEMD-SSA-BiLSTM、…...

精通ComfyUI-BrushNet:专业图像修复全流程指南

精通ComfyUI-BrushNet&#xff1a;专业图像修复全流程指南 【免费下载链接】ComfyUI-BrushNet ComfyUI BrushNet nodes 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-BrushNet ComfyUI-BrushNet是一款功能强大的图像修复工具&#xff0c;通过节点式工作流实现专…...

OpenClaw 的核心组件有哪些?请描述它们之间的关系

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;AI大模型原理和应用面试题 文章目录一、&#x1f340;OpenClaw 核心组件详解1.1 ☘️…...

Kurento Media Server与OpenVidu集成:打造企业级视频会议系统

Kurento Media Server与OpenVidu集成&#xff1a;打造企业级视频会议系统 【免费下载链接】kurento-media-server [ARCHIVED] Contents migrated to monorepo: https://github.com/Kurento/kurento 项目地址: https://gitcode.com/gh_mirrors/ku/kurento-media-server K…...

AUTOSAR SPI配置进阶:如何为你的车载传感器设计高效可靠的通信序列?

AUTOSAR SPI配置进阶&#xff1a;车载传感器通信序列设计实战指南 在智能驾驶系统开发中&#xff0c;SPI总线作为连接毫米波雷达、IMU等关键传感器的神经末梢&#xff0c;其通信效率直接影响着环境感知的实时性。传统配置手册往往止步于基础参数说明&#xff0c;而本文将带您深…...

久鼎私域测流模式系统(现成方案)

久鼎私域测流模式系统是一套专注于私域流量监测与分析的解决方案&#xff0c;适用于企业精细化运营私域用户池。其核心功能包括流量来源追踪、用户行为分析、转化效果评估等&#xff0c;支持多平台数据整合。核心功能模块流量监测 实时监控私域流量入口&#xff08;如小程序、公…...

记一次攻防演练复盘(蓝队)

事件&#xff1a;某省大数据局主导的一次攻防演练中午时段遭受大量攻击。 告警信息&#xff08;TOP 5&#xff09;&#xff1a;[疑似目录穿越攻击URI] [漏洞攻击: Apache log4j RCE Attempt (http ldap) (CVE-2021-44228)] [web路径遍历漏洞攻击-Linux环境] [XSS跨站脚本攻击U…...

深入解析Host头攻击:原理、危害与防御策略

1. Host头攻击的基本原理 HTTP协议中的Host头字段就像快递单上的收件人地址。当你在浏览器输入www.example.com时&#xff0c;浏览器会在HTTP请求头部自动添加一行Host: www.example.com&#xff0c;告诉服务器你想访问哪个网站。这个设计本是为了让一台服务器能托管多个网站&a…...

check-dev-env - 开发环境依赖检测技能

check-dev-env - 开发环境依赖检测技能 技能概述 check-dev-env 是一个用于自动检查开发环境中常见依赖项是否已安装的 AI Agent 技能。该技能能够快速验证 Java、Maven、Node.js、NPM、Go、Python、Git 等主流开发工具的安装状态和版本号。 &#x1f4cb; 元信息 项目说明技…...

203 异构车辆队列分布式 MPC 优化控制约束复现之旅

203 异构车辆队列分布式 MPC 优化控制约束 复现的代码 .m 文件在自动驾驶和智能交通领域&#xff0c;异构车辆队列的分布式模型预测控制&#xff08;MPC&#xff09;是个热门话题。今天就来聊聊基于复现代码&#xff08;.m文件&#xff09;对203异构车辆队列分布式MPC优化控制约…...

Labview 机器视觉(4)之 图像处理进阶 - 像素操作与批量保存

1. 像素操作&#xff1a;从入门到精通的实战指南 在工业自动化领域&#xff0c;图像处理的核心往往在于对像素级别的精准控制。LabVIEW作为一款强大的图形化编程工具&#xff0c;提供了丰富的像素操作函数&#xff0c;让工程师能够像搭积木一样构建复杂的视觉处理流程。 我第一…...