在网上经常可以看到将伪数组转成真数组的方法;;类似
let pretendArr = {0:0,1:1,2:2,length:3};
[].slice.call(pretendArr); //[0,1,2]
那么为什么呢?为什么这样就可以转成真数组呢?希望有人可以帮忙解惑
在网上经常可以看到将伪数组转成真数组的方法;;类似
let pretendArr = {0:0,1:1,2:2,length:3};
[].slice.call(pretendArr); //[0,1,2]
那么为什么呢?为什么这样就可以转成真数组呢?希望有人可以帮忙解惑
这篇文章介绍的很详细了
https://www.cnblogs.com/littl...
[].slice.call
其实就相当于 Array.prototype.slice.call
[]
就是一个Array
,调用了数组原型上的方法
我对call和apply的理解就是:把别人的东西嫁接到另一个人身上去。
pretendArr是一个对象,[]是一个空数组,如果你直接pretendArr.slice会报错,但是[]这个对象是有slice这个原型方法的。那么我把[]数组对象的slice方法通过call方法嫁接到pretendArr对象上,就能实现obj对象使用array对象的方法了。
另,[].slice.call()这种写法有点骚啊
9 回答9.4k 阅读
6 回答5.1k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10k 阅读
5 回答7.4k 阅读✓ 已解决
5 回答8.3k 阅读
对此问题顺手写了篇文章
昨天下午写了一半,下班回家后懒癌犯了没接着写,刚补上后面一半。。