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

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

slice(start[, end])方法

概念:通过索引位置获取新的数组,该方法不会修改原数组,返回一个新的子数组,常用于数组的截取

call(thisArg, arg1, arg2,arg3)方法

概念:一个对象调用另一个对象的方法,第二个参数为列表列表形式,这是与Apply()第二个参数为数组形式不同的地方

Array.prototype.slice.call() 能将具有length属性的对象转成数组,比如类数组(arguments,NodeList)、字符串(String)

Array.prototype.slice.call(arguments, index) 从第index个开始转换成数组,arguments继承了数组的原型方法中的slice方法

应用场景(一):将函数的实际参数转化为数组

代码实现

1、Array.prototype.slice.call(arguments)2、[].slice.call(arguments,0)3、     var args = [];     for(var i=1;i
function test(){       console.log(arguments)//{0:"a",1:"b",2:"c",length:3}       console.log(Array.prototype.slice.call(arguments));//[a,b,c],将test的实际参数转化为了数组    }; test("a","b","c");

应用场景(二):将字符串,有length属性对象转化为数组,将数字,布尔值,普通对象转化为空数组

代码实现

console.log(Array.prototype.slice.call('string')) //["s", "t", "r", "i", "n", "g"]console.log(Array.prototype.slice.call(true)) //[]console.log(Array.prototype.slice.call(1)) //[]console.log(Array.prototype.slice.call({0:'obj'})) //[]console.log(Array.prototype.slice.call({0: 'obj1', 1: 'obj2', 2: 'obj3', length: 2}));  // ["obj1", "obj2"]

 

 

 

 

 

转载于:https://www.cnblogs.com/zhangyaolan/p/11157475.html

你可能感兴趣的文章
Jmeter学习及使用(一)安装
查看>>
H5 调用手机摄像机、相册功能
查看>>
Google Closure Compiler 高级模式及更多思考(转)
查看>>
python--闭包函数、装饰器
查看>>
【坑】linux目录软连接的相关操作--很容易误操作
查看>>
Phpstorm中使用SFTP
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
分布式系统事务一致性解决方案
查看>>
开启一个项目如何上传到git
查看>>
ie文本框内容不居中问题
查看>>
利用grub2制作多启动U盘
查看>>
MQTT的学习研究(十三) IBM MQTTV3 简单发布订阅实例
查看>>
使用 github Pages 服务建立个人独立博客全过程
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
JavaScript -- 数据存储
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>