原型和原型链

news2024/11/17 22:33:20

什么是原型?

因为每一个函数都有一个属性,这个属性名就是prototype,(即为显式原型)

这个属性的值是一个对象

每一个实例对象都有一个__proto__(即为隐式原型)

原型就是函数的prototype属性,这个prototype里面有constructor属性,constructor的值是原本的这个函数(也就是说constructor指向回构造函数本身)

prototype可以干什么?

我们给prototype对象里面添加自定义属性和方法,我们将属性或者方法挂载到原型上面,这样就可以让实例对象使用原型上的属性和方法了。

 

什么是原型链?

原型链(也叫隐式原型链)可以看成是一个链条,链条每一节之间都有一个连接点,原型链的连接点是一个叫

_ _proto_ _的东西,_ _proto_ _是实例对象的一个属性,通过_ _proto_ _可以指向构造函数的prototype属性,即为隐式原型

c.__proto__==Children.prototype   

//换句话说:实例对象的隐式原型等于构造函数的显示原型(实例的__proto__和构造函数的prototype指向的是同一块内存)

例如:一个实例想要找到name属性,首先要在自身找,如果没有,就去原型上去找,如果还没找到继续顺着原型的原型去找,直到找到为止,如果还是没有,就会返回undefined。

原型链的的尽头是null                     Object.prototype.__proto__==null

原型链的作用:查找对象的属性(方法)

附上原型图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192338.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

excel数据比较:如何做一个完美的多条件排名方案

排名,简单;但如果有多个项目类别,并且可能存在业绩相同,怎么快速找出各个分享排名第一的人物呢?这就要通过多条件去匹配,才能找出需要的排名第一者。这里提供了两个方案,但都不够完美&#xff0…

Unity-TCP-网络聊天功能(三): 公共/私人聊天、添加好友、好友上下线、新消息提醒、点击好友聊天、退出登录

7.多人公共聊天、私人聊天、添加好友、好友上下线、新消息提醒、点击好友开始聊天、退出登录搭建好ChatView的UI和ChatItem编写Unity-Scripts/View/ChatView.cs脚本,加入了私人聊天和公共聊天逻辑,chatView界面处理接收(ChatHandle委托&#…

在 Linux 中创建用户 and 给用户设置密码相关操作

目录 一、创建用户 二、给用户设置密码相关操作 ②.①、修改用户密码 ②.②、设置用户密码 ②.③、删除用户密码 一、创建用户 语法: useradd [-g 用户组名 -d home目录] 用户名 在 Linux 中“[]”里面的内容都代表可选,可以不写。 useradd&…

【数据结构】归并排序、快速排序(递归法和非递归法)

文章目录 一、归并排序 递归法 思想 程序代码 时间复杂度 非递归法 思想 程序代码 二、快速排序(挖坑法) 思想 程序代码 时间复杂度 三、快速排序(hoare法) 思想 程序代码 hoare法错误集锦 死循环 越界 四、快…

kubernetes pod内容器状态OOMKilled和退出码137全流程解析

kubernetes pod内容器状态OOMKilled和退出码137全流程解析 - 简书 使用event_control监听memory cgroup的oom事件 - 简书 kubernetes/k8s CRI分析-kubelet删除pod分析 - 良凯尔 - 博客园 在kubernetes的实际生产实践中,经常会看到pod内的容器因为内存使用超限被内…

【My Electronic Notes系列——数字电路基础知识】

目录 序言: 🏆🏆人生在世,成功并非易事,他需要破茧而出的决心,他需要永不放弃的信念,他需要水滴石穿的坚持,他需要自强不息的勇气,他需要无畏无惧的凛然。要想成功&…

从战略、管理、业务、产品这4个维度,思考从0到1的产品设计

引言对于B端产品经理而言,从0~1的产品设计考验一个人的规划能力、统筹能力与产品设计能力,与日常产品迭代的方法流程具备差异,如何进行从0~1的产品设计?我针对自身经验梳理总结,希望下面的文章能…

教你简单学git(从零基础到进阶)

前言 什么是Git? 当你刚刚接触到程序开发行业,别人通常都会对你说:git就是用来保存代码项目的,防止代码丢失。 是这个道理没错,但是并不准确。 Git是一个分布式版本管理系统,是为了更好地管理Linux内核开发而创立的…

量子投资狂飙?四家量子计算公司两天获得巨额投资

(图片来源:网络)1月23至24日,加拿大光量子计算公司Xanadu、法国量子计算初创公司Welinq、法国量子计算公司PASQAL、瑞典查尔姆斯大学先后宣布获得新一轮巨额融资。短短两天之内,这四起融资事件无疑将量子计算领域的投资…

【数据库原理与SQL Server应用】Part03——T-SQL语言

【数据库原理与应用】Part03——T-SQL语言一、SQL语言基本概念1.1 T-SQL语言简介T-SQL语言的特点:核心SQL语言的4个部分:1.2 T-SQL语言的语法约定1.3 标识符常规标识符分隔标识符1.4 常量和变量数据类型常量变量1.5 注释1.6 运算符1.7 函数1.7.1 标量函数…

省市高速服务区智能一体机视频解决方案的设计

一、行业背景 1)传统服务模式难以满足出行需求 出行人员对高速公路服务质量的要求越来越高,传统服务模式难以满足人们对美好出行的需求,节假日拥堵、服务低效等问题影响着服务区的管理。 2)服务区智能化程度有待提高 很多高速…

激活函数有哪些?分别有哪些优缺点?【Sigmoid、tanh、ReLU、Leaky ReLU、ParametricReLU】

一、激活函数的提出 1. Motivation 通用逼近定理(Universal Approximation Theorem):一个包含单一隐含层的多层神经元网络能够以任何期望的精度近似任何连续函数。 构建神经网络的核心目的是拟合函数,通过前向传播得到拟合函数或者判别函数输出最终的结果,最初的神经网络…

Ubuntu Pro专业版笔记

Ubuntu是一个开源的操作系统,源自于Debian,以桌面和服务器端应用为主。它拥有丰富的软件仓库和社区,提供强大的稳定性和易用性。而Ubuntu Pro是Ubuntu的商业版本,提供额外的技术支持和服务。它专为企业环境设计,提供了…

【redis】1-8 Redis命令行客户端基本使用

本节目录1. 内容简介2. 操作3. Another Redis Desktop Manager查看redis中的数据4. 课程目录1. 内容简介 如何进入docker容器,登录redis命令行工具reids-cli的使用使用Another Redis Desktop Manager查看redis中的数据 2. 操作 上一章,redis使用docke…

目前我国外贸企业生存现状如何?

今天,最新的进出口贸易数据发布。海关总署9日公布的数据显示,今年前4个月,我国进出口总值12.58万亿元,同比增长7.9%。虽然整体增速有所回落,但完全在可控范围内。但是增速下的外贸企业就不那么好做了,很多外…

MAC IP地址扫描监控

OpUtils包括 IP 地址监控工具、流氓检测工具和 MAC 地址解析器,用于日常监控和管理 DNS 名称、IP 和 MAC 地址。地址监控工具用于 IP 监控,用于管理 DNS 名称、网络的 IP 和 MAC 地址,并跟踪 IP 地址。 IP地址监控功能 OpUtils提供了以下实…

flutter pc端 使用grpc双向流

官网 grpc-dart:https://github.com/grpc/grpc-dart proto文件 syntax "proto3";option go_package "./";package helloworld;service RouteGuide {rpc GetFeature(Point) returns (Feature) {}rpc ListFeatures(Rectangle) returns (stre…

C#读写T5557芯片卡复制ID门禁卡源码

T5557卡是美国Atmel公司生产的多功能非接触式射频芯片卡,属于125KHz的低频卡,在国内有广大的应用市场,如很多酒店的门禁卡都是使用T5557卡。该芯片共有330bit(比特)的EPROM(分布为10个区块, 每个区块33bit)。0页的块0是被保留用于设置T5557操…

maven导入本地jar包

有些jar包是自己封装的或者来源公司私服等. 引入本地jar包方式 另外一种方式 包所在路径 cmd 这样jar包就在你仓库本地仓库里 然后导入

JVM-性能监控与调优-JVM运行时参数

JVM参数选项 官网地址:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html 类型一:标准参数选项 > java -help 用法: java [-options] class [args...](执行类)或 java [-options] -jar jarfile [args...](执行 jar 文件) 其…