es6中箭头函数 原型

箭头函数 特性

箭头函数的特性

	不绑定arguments,用rest参数…解决本身没有this的概念,捕获其所在上下文的 this 值作为自己的 this 值,this指向全局箭头函数不能使用new(会报错)箭头函数没有原型属性(prototype)箭头函数不能当做Generator函数,不能使用yield关键字箭头函数不能换行箭头函数有constructor、length属性箭头函数可以立即执行

改变this指向的方法有哪些

1)
在指定位置定义this存为变量
2)
使用箭头函数
3)
使用setTimeout
4)
使用call()方法
5)
使用bind()方法
6)
使用applay()方法

call(),bind(),apply()区别

1.apply、call、bind他们三个都能改变函数this的指向问题;
2.apply、call这两个方法的主动调用,bind返回的是改变this指向后的新函数;
3.传参的问题区别,call和bind都是直接传递参数,apply传递的是数组

Function.prototype.callNew = function(content,...sum){console.log(!content);if(!content|| context === null|| context === undefined){context = window;}let fn = Symbol();content[fn] = this;return content[fn](...sum);}

深拷贝

function deepClone(obj){let objClone = Array.isArray(obj)?[]:{};if(obj && typeof obj==="object"){for(key in obj){if(obj.hasOwnProperty(key)){//判断ojb子元素是否为对象,如果是,递归复制if(obj[key]&&typeof obj[key] ==="object"){objClone[key] = deepClone(obj[key]);}else{//如果不是,简单复制objClone[key] = obj[key];}}}}return objClone;}    let a=[1,2,3,4],b=deepClone(a);a[0]=2;console.log(a,b);

原型

方法一:// 	Array.prototype.shifts = function(){// 	for(var i=0;i<this.length-1;i++){// 		this[i] = this[i+1];// 	}// 	this.length = this.length-1;// }// var arr = [11,22,33];// arr.shifts();// console.log(arr);
方法二:// Array.prototype.unshifts = function(user){// 	this.length = this.length+1;// 	for(var i=this.length-1;i>=0;i--){// 		this[i] = this[i-1];// 	}// 	this[0] = user;// }// var arr = [11,22,33];// arr.unshifts(44);// console.log(arr);

原型查找机制

  1. 当访问一个对象的属性或方法时,首先查找这个对象自身有没有
  2. 如果没有就查找它的原型(也就是 _ _ proto _ _指向的prototype 原型对象 )
  3. 如果还没有找到就查找原型对象的原型(Object的原型对象)
  4. 依次类推一直找到Object为止( null )
  5. _ _ proto _ _ 对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条线路

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

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

相关文章

力扣labuladong一刷day54天前缀树

力扣labuladong一刷day54天前缀树 文章目录 力扣labuladong一刷day54天前缀树一、208. 实现 Trie (前缀树)二、648. 单词替换三、211. 添加与搜索单词 - 数据结构设计四、1804. 实现 Trie &#xff08;前缀树&#xff09; II五、677. 键值映射 一、208. 实现 Trie (前缀树) 题…

linux源码解读系列

Linux 源码解读是一个深入且复杂的领域&#xff0c;涵盖了操作系统的核心部分&#xff0c;包括内核架构、进程管理、内存管理、文件系统、网络通信等。由于 Linux 内核源码庞大且复杂&#xff0c;通常需要具备扎实的操作系统理论知识和C语言编程能力。下面是一些推荐的资源和方…

一键了解获取网页requests方式

目录 一、爬虫原理&#xff1a; 二、安装&#xff1a; 测试&#xff1a; 三、文件的操作 方式一 方式二: 方式三 四、认识User-Agent 4.1、为什么用User-Agent&#xff1a; 步骤&#xff1a; 五、请求方式 5.1、get 5.2、post 六、爬出有中国关键字页面案例 一、爬…

C++用宏实现类成员反射

序 本文我们看下用宏来实现反射&#xff0c;在一些伙伴使用c版本还不是那么高的情况下但又需要反射的一些技巧&#xff0c;这里使用的代码是iguana里的实现&#xff0c;我对它关于反射的地方提炼一下&#xff0c;稍微改动了下。iguana是比较优秀的序列化库&#xff0c;其中使用…

Android TCP、UDP区别

目录 TCP、UDP区别 连接性 可靠性 流量控制和拥塞控制 应用场景 小结 Android 中的TCP、UDP TCP&#xff08;传输控制协议&#xff09; UDP&#xff08;用户数据报协议&#xff09; 小结 TCP、UDP区别 TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户…

Java开发HttpSession详解

Java开发HttpSession详解 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一同深入探讨Java中的HttpSession&#xff0c;了解其在Web开发中的…

win10下vscode+cmake编译C代码操作详解

0 工具准备 1.Visual Studio Code 1.85.1 2.cmake 3.24.01 前言 当我们只有一个.c文件时直接使用vscodeCode Runner插件即可完成编译&#xff0c;如果我们的工程很复杂包含多个.c文件时建议使用cmake来生成对应的make&#xff0c;指导编译器完成编译&#xff0c;否则会提示各…

【二叉树】二叉树根节点到叶子节点的所有路径和

题目&#xff0c;来自牛客网 法1&#xff1a;使用全局变量 public class Solution {public int res 0;public int sumNumbers (TreeNode root) {if (root null) {return 0;}dfs(root, 0);return res;}public void dfs(TreeNode root, int preSum) {if (root.left null &am…

强化学习的数学原理学习笔记 - 基于模型(Model-based)

文章目录 概览&#xff1a;RL方法分类基于模型&#xff08;Model-Based&#xff09;值迭代&#xff08;Value Iteration&#xff09;&#x1f7e6;策略迭代&#xff08;Policy Iteration&#xff09;&#x1f7e1;截断策略迭代&#xff08;Truncated Policy Iteration&#xff…

YOLOv5改进 | 损失函数篇 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数

一、本文介绍 这篇文章介绍了YOLOv5的重大改进,特别是在损失函数方面的创新。它不仅包括了多种IoU损失函数的改进和变体,如SIoU、WIoU、GIoU、DIoU、EIOU、CIoU,还融合了“Focus”思想,创造了一系列新的损失函数。这些组合形式的损失函数超过了二十余种,每种都针对特定的…

K8S--安装MySQL8(单机)

原文网址&#xff1a;K8S--安装MySQL8&#xff08;单机&#xff09;-CSDN博客 简介 本文介绍K8S部署MySQL8&#xff08;单机&#xff09;的方法。 本文的目标 1.通过PV和PVC&#xff08;hostPath方式&#xff09;存储MySQL的数据 2.通过Deployment、Service部署MySQL8&…

Java异常机制:从混乱到控制的错误管理艺术

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、异常的体系结构1、异常的体系结构2、异常的分类 二、异常的处理1、异常的抛出2、异常的捕获2.1、异常声明throws2.2、try-c…

leaflet:加载本地shp文件,并在地图上显示出来 (138)

第138个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载本地shp文件,利用shapefile读取shp数据,转换为json,利用L.geoJSON()在地图上显示图形。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果安装加载shapefile.j…

Docker使用扩展

日升时奋斗&#xff0c;日落时自省 目录 1、容器 1.1、容器的生命周期 1.1.1、容器OOM 1.1.2、容器异常退出 1.1.3、容器暂停 1.2、容器命令 1.2.1、创建容器 1.2.2、启动容器 1.2.3、容器日志 1.2.4、容器交互 1.2.5、容器停止 1.2.6、扩展 1.3、综合演示 2、存…

ChatGPT | 模型架构 | 应用 | 思考

介绍 ChatGPT 3.5 是 OpenAI 推出的语言模型的一个版本&#xff0c;是 GPT&#xff08;生成式预训练模型&#xff09;系列的一部分。在自然语言理解和生成方面具有强大的能力&#xff0c;可以应用于问答系统、文本生成、翻译和对话系统等多个领域。 模型架构 GPT-3.5&#x…

【代码】Keras3.0:实现残差连接

简介 残差连接是一种非常重要的网络结构创新&#xff0c;最早被广泛应用于ResNet&#xff08;Residual Neural Network&#xff09;模型中&#xff0c;由何凯明等人在2015年的论文"Deep Residual Learning for Image Recognition"中提出。 核心思想 通过引入“short…

如何查找文献及相关代码

参考文献 1.文献调研之如何查找文献及源码_在哪个网站能下载有代码的文献-CSDN博客 2.如何寻找论文及其相关代码&#xff1f;_google学术中的论文代码怎么找-CSDN博客 3.找论文代码_researchcode-CSDN博客 4. 如何最快速找到自己想要的优质的论文以及代码?一个超强大的网站…

Vue3-42-组件-给组件指定名称 + defineOptions 函数的简单使用

问题说明 当我们在 使用 <script setup> 组合式 API的时候&#xff0c;发现我们并没有给组件指定它的名称。 此时它实际上使用的是 文件的名称 作为组件的名称。 例如 &#xff1a; 组件文件是 【componentABC.vue】 那么这个组件的默认名称就是 【componentABC】.现在我…

Linux stm32串口下载程序

一、工具 使用stm32flash进行串口下载 二、stm32flash安装 sudo apt-get install stm32flash 三、查看串口设备名称 先拔掉串口运行下面指令&#xff0c;获得所有设备名称,插上串口再运行一次&#xff0c;新增的就是串口设备名称&#xff0c;记住串口设备名称&#xff0c;以…

【Hadoop】说下HDFS读文件和写文件的底层原理?

文件读取文件的写入 文件读取 客户端调用 FileSystem 对象的 open&#xff08;&#xff09;函数&#xff0c;打开想要读取的文件。其中FileSystem 是 DistributeFileSystem 的一个实例&#xff1b;DistributedFileSystem 通过使用 RPC&#xff08;远程过程调用&#xff09; 访N…