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

详解Array.prototype.shift.call(arguments)

经常看到如下代码:

function foo() {let k = Array.prototype.shift.call(arguments);console.log(k)
}
foo('11','22') //11

Array.prototype.shift.call(arguments)的作用是: 取 arguments 中的第一个参数

一、为啥要这么写,不直接使用arguments.shift()呢? 

 原因:就是arguments不是一个真正的数组,而是类数组

arguments是类数组,很多数组中的方法arguments都没有

打印 arguments

打印Array.prototype

可以看到Array.prototype上是有shift()方法

总结 :

因 arguments 没有 shift 方法,故使用 Array.prototype.shift 函数 , 又使用call方法来把this指向arguments,

通俗点说就是argument借shift方法,来获取arguments中的第一个参数

 

http://www.lryc.cn/news/39254.html

相关文章:

  • Tina_Linux_Wi-Fi_开发指南
  • Spring AOP(AOP概念、组成、Spring AOP实现及实现原理)
  • 8.条件渲染指令
  • 2023年全网最全最细最流行的自动化测试工具有哪些?你都知道吗!
  • 网络安全——数据链路层安全协议
  • 编译原理基础概念
  • 蔬菜视觉分拣机器人的设计与实现(RoboWork参赛方案)
  • 【LVGL移植】STM32F1基于STM32CubeMX配置硬件SPI驱动1.8寸TFT ST7735S跑LVGL图形demo
  • 写给20、21级学生的话
  • 功能测试用例多次录制后,我丢掉了selenium,选择龙测AI-TestOps云平台
  • 【C++知识点】C++20 常用新特性总结
  • 数据库体系结构概念--集中式数据库、分布式数据库
  • PyQt5数据库开发2 5.2 QSqlRelationalTableModel
  • 树莓派——智能家居第一步
  • 【Golang】Golang基础入门级教程 -- 0基础安装搭建Go语言开发环境
  • MATLAB | 如何解决实验数据散点图重叠问题(overlap)
  • Kubernetes 一键部署利器:kubeadm
  • [jS 事件循环理解] 主线程 宏任务 微任务 - 执行顺序优先级理解
  • 顺序表和链表的比较
  • Java为什么只能单继承???
  • 数据安全-分类分级 调研分析报告
  • 浏览器对象详解
  • 异步电路后端实现流程(cdc signOff 后端做什么)
  • Linux网络编程实战介绍
  • C++概述 课堂笔记
  • 一文读懂SpringBoot整合Elasticsearch(一)
  • (数论)(枚举)(前缀和)1230. K倍区间
  • 万字带你深入理解 Linux 虚拟内存管理(下)
  • 【iOS】—— JSONModel源码学习
  • 单片机怎么实现真正的多线程?