定义:

arguments是一个类似于数组的对象,对应于传递给函数的参数,他有length属性,arguments[ i ]来访问对象中的元素,但是它不能用数组的一些方法。例如push、pop、slice等。
arguments虽然不是一个数组,但是它可以转成一个真正的数组。

function argText(a,b,c){var actual = arguments.length;   //实际传参个数var hope = argText.length   //期望传参个数console.log(actual,hope);//转换数组:var args = [].slice.call(arguments);   //第一种var args = Array.prototype.slice.call(arguments);   //第二种let args = Array.from(arguments);   //第三种let args = [...arguments];   //第四种console.log(args)
}
argText(1,2)
//输出: 2 3

每一个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式" [ ] "引用arguments的元素。

arguments.length为函数实参个数,arguments.callee引用函数自身。

arguments对象是所有函数中可用的局部变量,可以使用arguments对象在函数中引用函数的参数,此参数包含传递给函数的每个参数条目。

arguments.callee:Arguments的callee属性可以调用函数本身,当函数正在执行时才可调用,可以实现方法的递归调用。

function argText(){var e = arguments.callee.toString();console.log(e);
}
argText();

arguments.caller:指向调用当前函数的函数

function argText(){if(argText.caller){var caller = argText.caller.toString();console.log(caller);}else{console.log("no caller");}
}
function handler(){argText();
}
function copyHandler(){handler();
}
argText()
//输出: no caller
handler()
//输出: function handler(){argText();}
copyHandler();
//输出: function handler(){argText();}

arguments的解释相关推荐

  1. 校招基本告一段落,总结一下

    校招的这段时间学习到了很多 最终大概是签约上海美团点评 用Word总结了很多问题.发布在这里 7-13: 1:flex项目嵌套flex项目怎么算? 你知道Flex项目也可以成为Flex容器吗?是的,是 ...

  2. underscore中的partial

    underscore中的partial 基本概念,JavaScript的函数式编程中有两个重要的概念,偏函数(partial application)和函数柯里化(curry).所谓函数式编程是一种编 ...

  3. 使用Atmel Studio开发Arduino的ATmega328P单片机

    摘要:我们知道Arduino开发板常用的芯片是Atmel公司生产的AVR微控制器系列.最常见的是ATmega328P,被广泛用于Arduino Uno开发板.其他常用的AVR芯片包括ATmega256 ...

  4. 前端面试心经一.题目

    number1: function _1(){console.log(a);console.log(b);var b=function(){};console.log(a);console.log(b ...

  5. [].shift.call( arguments ) 和 [].slice.call( arguments ) 解释

    经典的 [].slice.call( arguments ) 关于这个的解释网上有很多,大多是 "把类数组对象转为数组对象".确实这是我们想要实现的功能! 但这仅仅是说明了结果并没 ...

  6. java unlimited_具有无限参数的Java方法(Java method with unlimited arguments)

    具有无限参数的Java方法(Java method with unlimited arguments) Spring框架使用方法,您可以根据需要传递尽可能多的参数. 我想写一个函数,也可以采取无限量的 ...

  7. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  8. javascript晚绑定_JavaScript的应用,调用和绑定通过托管野餐来解释

    javascript晚绑定 by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) JavaScript的应用,调用和绑定通过托管野餐来解释 (JavaScript's ...

  9. 浅析js中的arguments

    arguments就是传递进函数的参数列表,它是一个类数组对象-Array-Like Object. 类数组对象,简单来说就是拥有length属性,如我们常用的NodeList,arguments,但 ...

最新文章

  1. 2019寒假作业二:PTA7-1币值转换
  2. 房价集体上扬?最新房价数据分析看房价走势
  3. 一次系统调用开销到底有多大?
  4. 深度学习(十一)——Winograd(1)
  5. 一般编译器错误_[翻译]MLIR:摩尔定律终结的编译器基础结构
  6. 44.分治算法练习:  一元三次方程求解
  7. php is_subclass_of,PHP_PHP is_subclass_of函数的一个BUG和解决方法,is_subclass_of的作用: 复制代码 - phpStudy...
  8. linux 构造函数 throw,在自定义异常的方法/构造函数签名中带和不带throw()的C++...
  9. Android使用scrollview截取整个的屏幕并分享微信
  10. python中home定义是什么_搞清楚Python中self的含义
  11. python list倒序_Python 面试:这9个问题你一定要掌握!
  12. MOV格式视频转MP4
  13. 圣剑传说 玛娜传奇(Legend of Mana)(LOM)全防具取得方法
  14. cols - 表头参数一览表
  15. stm32项目实战ST7735环境质量检测仪
  16. MODIS与Landsat获取LST数据
  17. Linux tar命令详解
  18. html 的(热点区域的建立、框架的建立)
  19. 作为一名Java开发工程师需要掌握的专业技能
  20. 解决Windows提示缺少mfc140.dll文件的问题

热门文章

  1. ionic的安装与环境配置
  2. blas daxpy dcopy函数的使用
  3. 【IEEE_SV-21.3.3】数据格式化为字符串
  4. How to implement collapse all in windows tree structure such as regedit
  5. 啪的一下就进来了,很快哦
  6. ABAP BDC 实例
  7. 浅谈:事件冒泡、事件捕获,及阻止办法
  8. 程序员要如何提升自己的外形
  9. 前端点击图片,图片放大
  10. 李沐——动手学深度学习课后练习calculus