javascript - 类数组对象是如何调用原生数组方法的?
迷茫
迷茫 2017-04-10 15:40:10
[JavaScript讨论组]
function obj(){
    var args=Array.prototype.slice.call(argumens);
    console.log(args);
}
obj("h","e","l","l","o");   //输出 ["h","e","l","l","o"];

arguments是函数内置的类数组对象。文章详见函数内置arguments。

那么在obj函数内部的

arguments={
    0:"h",
    1:"e",
    2:"l",
    3:"l",
    4:"o",
    length:5
};

这里Array.prototype.slice.call(arguments)的内部是如何执行的才会输出["h","e","l","l","o"]的?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
大家讲道理
function slice(arrayObjects,start,end){
    var resultArray=[];
    var endIndex=end||arrayObjects.length-1;
    var startIndex=start;
    if(endIndex>=arrayObjects.length){
        endIndex=arrayObjects.length-1;
    }
    for(var i=startIndex;i<=endIndex;i++){
        resultArray.push(arrayObjects[i]);
    }

    return resultArray;
}
大家讲道理

可通过call或者apply方法,对象冒充

阿神

先看下我对 apply、call和bind这三个你可能感兴趣的理解,然后或许你就懂了你要问的了,http://www.cnblogs.com/skylor/p/4723612.html

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号