0
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"]的?

2015-08-13 提问
3 个回答
1

已采纳
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;
}
0

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

0

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

撰写答案

你可能感兴趣的

推广链接