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库来实现通用和可重用的功能。这些库需要简单易用,...