zoukankan      html  css  js  c++  java
  • Array.prototype.slice.call(arguments)

    Array.prototype.slice.call(arguments)能将具有length属性的对象(key值为数字)转成数组。但有一个例外,IE下的节点集合它不能转换(因为IE下的dom对象是以com对象的形式实现,js对象和com对象不能进行转换)
    slice中文名是截取,在go语言中我们称之为切片, 我们可以理解为Array.prototype.slice.call(arguments)就是 arguments.toArray().slice().
    其内部实现

    Array.prototype.slice = function(start,end){
        var result = new Array();
        start = start || 0;
        end = end || this.length; 
      
        for(var i = start; i < end; i++)
        {
             result.push(this[i]);
        }
    
        return result;
    }
    

    上面 this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键。

    其中下面两个方法是等价的:

     var args = Array.prototype.slice.call(arguments);
    var args = [].slice.call(arguments);
    
  • 相关阅读:
    第九周
    第七周.
    第六周.
    第二次作业
    第九周作业
    第八周作业
    第七周作业
    第六周作业
    第五周作业
    统计一行文本的单词个数
  • 原文地址:https://www.cnblogs.com/c-x-a/p/11726120.html
Copyright © 2011-2022 走看看