美文网首页
类数组、arguments

类数组、arguments

作者: 九万里者 | 来源:发表于2017-06-07 14:55 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/eqnofxtx.html