arguments的解释
定义:
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的解释相关推荐
- 校招基本告一段落,总结一下
校招的这段时间学习到了很多 最终大概是签约上海美团点评 用Word总结了很多问题.发布在这里 7-13: 1:flex项目嵌套flex项目怎么算? 你知道Flex项目也可以成为Flex容器吗?是的,是 ...
- underscore中的partial
underscore中的partial 基本概念,JavaScript的函数式编程中有两个重要的概念,偏函数(partial application)和函数柯里化(curry).所谓函数式编程是一种编 ...
- 使用Atmel Studio开发Arduino的ATmega328P单片机
摘要:我们知道Arduino开发板常用的芯片是Atmel公司生产的AVR微控制器系列.最常见的是ATmega328P,被广泛用于Arduino Uno开发板.其他常用的AVR芯片包括ATmega256 ...
- 前端面试心经一.题目
number1: function _1(){console.log(a);console.log(b);var b=function(){};console.log(a);console.log(b ...
- [].shift.call( arguments ) 和 [].slice.call( arguments ) 解释
经典的 [].slice.call( arguments ) 关于这个的解释网上有很多,大多是 "把类数组对象转为数组对象".确实这是我们想要实现的功能! 但这仅仅是说明了结果并没 ...
- java unlimited_具有无限参数的Java方法(Java method with unlimited arguments)
具有无限参数的Java方法(Java method with unlimited arguments) Spring框架使用方法,您可以根据需要传递尽可能多的参数. 我想写一个函数,也可以采取无限量的 ...
- java python算法_用Python,Java和C ++示例解释的排序算法
java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...
- javascript晚绑定_JavaScript的应用,调用和绑定通过托管野餐来解释
javascript晚绑定 by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) JavaScript的应用,调用和绑定通过托管野餐来解释 (JavaScript's ...
- 浅析js中的arguments
arguments就是传递进函数的参数列表,它是一个类数组对象-Array-Like Object. 类数组对象,简单来说就是拥有length属性,如我们常用的NodeList,arguments,但 ...
最新文章
- 2019寒假作业二:PTA7-1币值转换
- 房价集体上扬?最新房价数据分析看房价走势
- 一次系统调用开销到底有多大?
- 深度学习(十一)——Winograd(1)
- 一般编译器错误_[翻译]MLIR:摩尔定律终结的编译器基础结构
- 44.分治算法练习: 一元三次方程求解
- php is_subclass_of,PHP_PHP is_subclass_of函数的一个BUG和解决方法,is_subclass_of的作用:
复制代码 - phpStudy...
- linux 构造函数 throw,在自定义异常的方法/构造函数签名中带和不带throw()的C++...
- Android使用scrollview截取整个的屏幕并分享微信
- python中home定义是什么_搞清楚Python中self的含义
- python list倒序_Python 面试:这9个问题你一定要掌握!
- MOV格式视频转MP4
- 圣剑传说 玛娜传奇(Legend of Mana)(LOM)全防具取得方法
- cols - 表头参数一览表
- stm32项目实战ST7735环境质量检测仪
- MODIS与Landsat获取LST数据
- Linux tar命令详解
- html 的(热点区域的建立、框架的建立)
- 作为一名Java开发工程师需要掌握的专业技能
- 解决Windows提示缺少mfc140.dll文件的问题