JavaScript原型和原型链

news2024/9/28 23:23:03

JavaScript每个对象拥有一个原型对象

需要注意的是,只有函数对象才有 prototype 属性

当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾

每个实例对象的proto指向它的构造函数的原型对象

person1.__proto__ === Person.prototype

构造函数是一个由Function构造器产生的函数,所以

Person.__proto__ === Function.prototype

同时构造函数的原型对象本身是一个普通对象,所以他的proto指向Object.prototype

Person.prototype.__proto__ === Object.prototype

与此同时,所有的构造器都是函数对象,所以Object是由Function构造器产生的

Object.__proto__ === Function.prototype

Function也是一个构造器,所以Function.proto指向自己的原型对象

Function.__proto__ === Function.prototype

Function.prototype.也是一个普通对象,所以它的__proto__指向Object.prototype

Function.prototype.__proto__ === Object.prototype

Object的原型对象也有__proto__属性指向nullnull是原型链的顶端

Object.prototype.__proto__ === null

总结一下:

  • 一切对象都是继承自Object对象,Object 对象直接继承根源对象null

  • 一切的函数对象(包括 Object 对象),都是继承自 Function 对象

  • Function对象的__proto__会指向自己的原型对象,最终还是继承自Object对象

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

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

相关文章

02hadoop伪分布式搭建

3. 环境安装 3.1 安装方式 单机模式 只能启动MapReduce 伪分布式 能启动HDFS、MapReduce 和 YARN的大部分功能 完全分布式 能启动Hadoop的所有功能 3.2 安装JDK 3.2.1 JDK安装步骤 下载JDK安装包(下载Linux系统的 .tar.gz 的安装包) https://www…

企业微信HOOK协议,新设备二次验证处理

提示设备强制二次验证问题已处理 HOOK:https://www.showdoc.com.cn/1663062930779972/7859611259700402密码:999999999

代码随想录算法训练营第day6|242.有效的字母异位词 、 349. 两个数组的交集 、202. 快乐数、1. 两数之和

a.242.有效的字母异位词 题目链接 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s "anagram", t "n…

[ai笔记15] openAI官方提示词工程文档(图文重排版本)

欢迎来到文思源想的ai空间,这是技术老兵重学ai以及成长思考的第15篇分享! 最近在学习prompt提示词技巧,一番研究发现其实提示词的技巧并不是限定死的,所谓技巧和心法更像是教导我们如何更清晰、更结构化的大模型聊天工具进行沟通…

以题为例 浅谈sql注入二次注入

什么是二次注入 二次注入可以理解为,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。防御者即使对用户输入的恶意数据进行转义,当数据插入到数据库中时被处理的数据又被还原,Web程序调用存…

Vue 3中的reactive:响应式状态的全面管理

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Java高频面试之Mysql篇

有需要互关的小伙伴,关注一下,有关必回关,争取今年认证早日拿到博客专家 Java高频面试之总纲篇 Java高频面试之集合篇 Java高频面试之异常篇 Java高频面试之并发篇 Java高频面试之SSM篇 Java高频面试之Mysql篇 Java高频面试之Redis篇 Java高频面试之消息队列与分布式篇…

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题①

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题① 模块一 私有云(50 分)任务 1 私有云服务搭建(10 分)任务 2 私有云服务运维(25 分)任务 3 私有云运维开发&#xf…

二分算法(蓝桥杯 C++ 题目 代码 注解)

目录 模板: 题目一(分巧克力): 代码: 题目二(M次方根): ​编辑代码: 题目三(跳石头): 代码: 题目四(扫…

LLM RAG系统中消除数据幻觉的几个绝招-OPENAI公司内称的“大招”

前言-什么是数据幻觉?它到底有什么危害呢 我们直接来举例: 我是金银花一区的,附近有什么小学? 此时RAG带出如下信息: 金银花小区一区、二区、三区附近教育资源有:银树大学、建设小学金银花校区、金树高…

左偏树,可并堆详解,OJ练习,代码详解

文章目录 一、左偏树的定义和性质1.1优先队列的定义1.2可并堆的定义1.3左偏树1.3.1左偏树的定义1.3.2左偏树的性质1.3.3左偏树的合并操作1.3.3.1合并操作流程1.3.3.2合并操作的代码实现 1.4左偏树OJ练习1.4.1模板1.4.1.1原题链接1.4.1.2思路分析1.4.1.3AC代码 1.4.2P1552 [APIO…

C++的类与对象(五):赋值运算符重载与日期类的实现

目录 比较两个日期对象 运算符重载 赋值运算符重载 连续赋值 日期类的实现 Date.h文件 Date.cpp文件 Test.cpp文件 const成员 取地址及const取地址操作符重载 比较两个日期对象 问题描述:内置类型可直接用运算符比较,自定义类型的对象是多个…

【Leetcode每日一刷】滑动窗口:209.长度最小的子数组

一、209.长度最小的子数组 1.1:题目 题目链接 1.2:解题思路 题型:滑动窗口;时间复杂度:O(n) 🪧 滑动窗口本质也是双指针的一种技巧,特别适用于字串问题 ❗❗核心思想/ 关键:左右…

简洁的链式思维(CCoT)提示

原文地址:Concise Chain-of-Thought (CCoT) Prompting 传统的CoT导致了输出令牌使用的增加,而CCoT提示是一种旨在减少LLM响应的冗长性和推理时间的提示工程技术。 2024 年 1 月 24 日 Areas where Chain-Of-Thought-like methodology has been introd…

RabbitMQ - 07 - 通过注解创建队列和交换机

之前消息模型的实现,都是通过rabbitMQ Management 控制台来手动创建 queue 和 exchange 的 在项目开发中有两种方式通过代码声明 创建 一种是通过 Bean 方式,这种代码量较大 稍繁琐 一种是通过注解的方式声明 先编写消费者代码 通过注解绑定了 消息队列,交换机,还有 routin…

24 深度卷积神经网络 AlexNet【李沐动手学深度学习v2课程笔记】(备注:含AlexNet和LeNet对比)

目录 1. 深度学习机器学习的发展 1.1 核方法 1.2 几何学 1.3 特征工程 opencv 1.4 Hardware 2. AlexNet 3. 代码 1. 深度学习机器学习的发展 1.1 核方法 2001 Learning with Kernels 核方法 (机器学习) 特征提取、选择核函数来计算相似性、凸优…

Python爬虫打印状态码为521,返回数据为乱码?

爬虫代码: import requests headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36,Referer:https://www1.rmfysszc.gov.cn/projects.shtml?dh3&gpstate1&wsbm_slt1} …

Java 中的 File 类常用方法介绍

Java 中的 File 类是 java.io 包的一部分,它提供了丰富的文件操作方法。File 类可以用来表示文件和目录路径名的抽象表示形式,即它可以用来获取文件或目录的属性,也可以用来创建、删除、重命名文件和目录。下面是一些常用的 File 类方法&…

双体系Java学习之程序流程控制及选择结构

程序流程控制 选择结构 package struct;import java.util.Scanner;public class IfDemo01 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.println("请输入内容:");String s scanner.nextLine();//判断字…

elasticsearch篇

1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近…