博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Array.prototype.slice.call(arguments)探究
阅读量:5073 次
发布时间:2019-06-12

本文共 752 字,大约阅读时间需要 2 分钟。

Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组

首先,slice有两个用法,一个是String.slice,一个是Array.slice,第一个返回的是字符串,第二个返回的是数组

假设slice的内部实现是如下代码:

Array.prototype.slice = function(start,end){      var result = new Array();      start = start || 0;       end = end || this.length; //this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键      for(var i = start; i < end; i++){           result.push(this[i]);        //result[i] = this[i]; //据说性能更高      }      return result;}

以上代码如何理解,首先Array.propotype.slice()方法是将数组进行循环赋给新建的数组,然后return返回,start、end参数默认参数是0和this对象的长度,传参则取传参值;

使用Array.protortype原型作为对象时需要配合传第一个参数arguments来改变this指向,Array.prototype.slice.call(arguments),start、end参数默认;

最后return的数组即是我们需要转成的数组。

 

转载于:https://www.cnblogs.com/coffeelovetea/p/8323543.html

你可能感兴趣的文章
stringstream 与空格 (大家讨论一下代码结果的原因)
查看>>
词性标注 parts of speech tagging
查看>>
git 入门(转)
查看>>
三、windows8 store
查看>>
Jenkins自动构建的几种方式
查看>>
MyEclipse 启动 tomcate 失败 解决方法
查看>>
[ SCOI 2005 ] 最大子矩阵
查看>>
[ NOI 2002 ] 荒岛野人
查看>>
网络支付改变两亿人生活
查看>>
取数据库MDF文件存储路径SQL语句
查看>>
【转】C#使用PrintDocument打印 多页 打印预览
查看>>
PHP list() 函数
查看>>
(转载)重新对APK文件签名
查看>>
layui弹窗、字符串转一维数组
查看>>
Qt打包成单独可执行的exe文件
查看>>
test
查看>>
1.7 HelloWorld 添加视图
查看>>
设计模式-写在前面
查看>>
bat脚本学习
查看>>
asp.net应用程序脱机app_offline.htm文件
查看>>