美文网首页JsJavascript
Javascript类数组对象

Javascript类数组对象

作者: kylelin | 来源:发表于2014-08-01 14:35 被阅读437次

    类数组对象,意思就是说:表面上看起来是数组,但内在却不是数组。在Javascript语言中,我们会碰到许多这样的类数组对象。其中最典型的便是function中的arguments。

    function add(a, b) {
        var args = arguments;
        console.log(args); // => [3, 4] 
        console.log(Object.prototype.toString.call(args)); // => [object Arguments]
        console.log(args.length); // => 2
        console.log(args.slice); // => undefined
        return a + b;
    }
    add(3, 4);
    

    我们发现,当我们去打印arguments的类型时,浏览器输出了[object Arguments],并且在arguments对象中,slice方法都没有,这说明argument对象确实不是数组,而是一个类数组对象。为了享受数组的那些便捷方法,所以我们需要将类数组对象转换成真正的数组对象。

    通常来说,只要[].slice.call就能转换了。

    function toArray(arrayLike) {
        return [].slice.call(arrayLike);
    }
    

    相关文章

      网友评论

        本文标题:Javascript类数组对象

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