arguments为一个类数组的对象;类数组对象即为:有length属性和索引的对象。
一、类数组===》数组
var arrObj = {0:"man",1:"20",length:2}; Array.prototype.slice.call(arrObj,0);//["man","20"]
注释:在arrObj中冒号前面的数字为下标;
slice将类数组对象转化为数组;
call(要转换的数组,开始的下标)
二、类数组===》对象
Array.prototytpe.splice.call(arrObj);//["man","20"] Array.from(arrObj);//["man","20"] Array.prototype.concat.apply([],arrObj);//["man","20"]
三、Arguments对象
Arguments只定义在函数体中,包括了函数参数和其他属性。在函数体中arguments代指Arguments对象。
1、属性1:length。在函数体中length为实参的长度。
2、属性2:callee。可以用该属性对函数自身的调用。
var data = []; for (var i = 0;i < 3;i++) { (data[i] = function ( ) { console.log(arguments.callee.i); }).i = i; } data[0]();//0 data[1]();//1 data[2]();//2
四、ES6将此、转化为数组
function fn (...arguments) { console.log(arguments);//[1,2,3] } fn(1,2,3);
类数组、arguments
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 相关知识点 数据类型、运算、对象、function、继承、闭包、作用域、原型链、事件、RegExp、JSON、Aj...
- 第一部分 准入训练 第1章 进入忍者世界 js开发人员通常使用js库来实现通用和可重用的功能。这些库需要简单易用,...