每日一题·对原型和原型链的理解(12/1)

news2024/11/26 0:27:28

目录

1. 原型链为什么要出现?

2. 原型是什么

3. 原型链是什么

4. 一些代码片段


1. 原型链为什么要出现?

声明2个实例,每个实例都会独立创建sayHi方法,非常占用内存。一样的方法,可以放在原型对象上共用。

        function Person(name, age) {
            this.name = name
            this.age = age
            this.sayHi = () => {
                console.log(1);
            }
        }
        let p1 = new Person('ls', '19')
        let p2 = new Person('zs', 20)
        console.log(p1.sayHi === p2.sayHi); // false
        p1.sayHi()
        p2.sayHi()

2. 原型是什么

 

  1. 每个函数身上都有要给prototype属性指向它的伴生对象

  2. 每个对象身上都有一个proto属性,指向它的构造函数的伴生对象

  3. 伴生对象身上有constructor属性,指向它的构造函数。伴生对象也有proto属性,指向父节点的prototype

  4. 我们一般会在prototype属性上面挂载公用的方法

  5. class语法,里面的方法,就是直接挂载到原型上面的。但是如果加了static关键字,就不是挂载到prorotype上

  6. 原型的特点:JS对象是通过引用来传递的,当修改原型时,与之相关的对象也会继承这个修改

  7. function Object和 function Function也是构造函数Function的实例对象, 他们俩都有proto属性指向Function.prototype

3. 原型链是什么

  1. 原型链是什么

  2. proto属性的指向,就会构成了原型链

  3. 当我们需要一个属性时,JS引擎会先查看当前对象中是否有这个属性,找不到,就会往proto属性关联的prototype对象查找

  4. 最终的根节点就是 Object.prototype.proto属性,指向的是undefiend

  5. 查找的链路越长,对性能的影响就会越大

4. 一些代码片段

var a = {}
a.constructor.prototype === a.__proto__ // true 因为 a.constructor就是Object构造函数

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

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

相关文章

[附源码]SSM计算机毕业设计疫情背景下社区公共卫生服务系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]Python计算机毕业设计SSM辽宁省高考志愿智能辅助填报系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

中间件版本信息泄露:Microsoft-HTTPAPI/2.0

中间件版本信息泄露:Microsoft-HTTPAPI 修复漏洞现象风险描述修复建议漏洞现象 server版本信息泄露 风险描述 修改请求url会导致所使用服务或中间件版本泄露,从而为攻击者提供进一步攻击的机会 修复建议 如果DisableServerHeader不存在&#xff0c…

【数据结构】二叉树的实现

文章目录一、二叉树的概念二、特殊的二叉树三、二叉树的性质四、二叉树的存储结构五、二叉树链式结构实现(1)创建结构体(2)具体函数实现及实现1.0 二叉树的构建1.1 二叉树的销毁1.2 二叉树节点个数1.3 二叉树叶子结点个数1.4 二叉…

【Pandas数据处理100例】(九十):Pandas使用period_range()生成固定间隔日期

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

【自然语言处理概述】99乘法表

【自然语言处理(NLP)】99乘法表 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产…

量子计算(十):量子计算原理

文章目录 量子计算原理 一、酉变换 二、矩阵的指数函数 三、单位矩阵 四、单量子比特逻辑门 五、泡利矩阵 六、常见逻辑门 量子计算原理 经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电…

[附源码]Python计算机毕业设计SSM课堂考勤(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【C++】vector的认识+模拟实现

目录1️⃣vector的概念2️⃣STL中vector的使用2.1 vector的定义2.2 iterator的使用2.3 vector的空间问题2.4 vector的增删查改2.5 迭代器失效问题2.5.1 什么是迭代器?2.5.2 迭代器失效3️⃣vector的模拟实现3.1 迭代器3.2 构造函数🔎memcpy的拷贝异常问题…

【Java面试】为什么重写equals方法必须同时重写HashCode方法?

众所周知再JDK1.8之后,Java修改了String类型的底层源码,因为他们发现其实对于-128~127范围的字符更加常用,因此将底层的数组从char类型修改为了byte类型。 看到上面的方法可以发现,String类型的equals方法会先比较两个字符串的…

Caffeine 源码、架构、原理(史上最全,10W字 超级长文)

文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新 史上最全 面试必备 2000页 面试必备 大厂必备 涨薪必备 免费赠送 经典…

软件实训-技术学习心得

一、MoOtA 前端主要负责动态界面的编写,主要学习JavaScript,HTML,CSS三件套 1、前端项目文件夹 .idea:无需关注 node_modules:无需关注 public:存放媒体资源,比如图片(images&…

CSS网页页面图像灰色滤镜写法示例

阿酷TONY / 原创 2022-12-1 / 长沙 / grayscale()函数是一个内置函数,用于对图像应用滤镜以设置图像的灰度。 用法: grayscale( amount ) 参数:此函数接受包含灰度值的单个参数量。灰度值根据数量和百分比设置。值0%表示原始图像&…

Java并发编程—Thread类中的start()方法如何启动一个线程?

一、java线程的介绍: 在java的开发过程中,很多铁子对于java线程肯定不感到陌生,作为java里面重要的组成部分,这里就从如何创建一个线程给大家进行分析; 二、相关知识引入: ​ 之前我了解过,j…

jQuery 简介

jQuery 库可以通过一行简单的标记被添加到网页中。 您需要具备的基础知识 在您开始学习 jQuery 之前,您应该对以下知识有基本的了解: HTMLCSSJavaScript 如果您需要首先学习这些科目,请在我们的 首页 查找这些教程。 什么是 jQuery &#x…

[附源码]Python计算机毕业设计Django的高校资源共享平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

无人机机械臂爪机器臂爪的安装调试试验。以大疆哪吒为例乐迪T8Fb遥控器。

首先将机械爪安装完毕。注意不要装的太紧,否则会损害舵机,应力度合适,可以先使用舵机测试仪测试。 安装舵机到位。要使用机械爪配套的舵机型号,否则孔位对不上。 调整螺丝孔位,确保齿轮能够吻合。 调整螺丝松紧&#…

JavaScript 基础笔记

初识 JavaScript JavaScript负责页面中的的行为,是一门运行在客户端的脚本语言。 解释型语言与编译型语言区别: JavaScript 作用 表单动态校验(密码校验)网页特效服务端开发桌面端开发等作用 JS引擎:浏览器使用Js引…

Vue3多个弹窗同时出现解决思路

Vue3多个弹窗同时出现解决思路 弹窗或者说对话框是我们在开发系统或者页面很常用的元素,所以博主想对出现多个弹窗的情况下的解决思路进行一个整理 有时候我们一个页面可能存在多个弹窗,当多个弹窗出现的时候可能屏幕就变的很黑,如下图所示…

图观引擎V3.3.4 功能更强、操作更便捷!最新升级一睹为快

图观™引擎,自去年内测版推出上线以来,已帮助众多合作伙伴开发出自己的数字孪生应用、落地交付数字孪生项目,实现了自身软件产品的全面升级、技术能力的大幅拓展。 经过不断的升级迭代,图观™引擎V3.3.4版本,更加注重…