[].slice.call(arguments)模拟实现 Array.of

博客探讨了JavaScript中Array.of()的模拟实现,通过使用Array.prototype.slice.call()方法将类数组对象转换为数组。文章解释了slice方法不仅用于创建数组切片,还能将类似数组的对象转换成真正的数组。通过对MDN文档的研究,揭示了这一功能的工作原理。
摘要由CSDN通过智能技术生成

最近在读《ES6标准入门》这本书,无意间看到下面这段代码:

// Array.of()方法可以用下面的代码模拟实现。
function ArrayOf(){
  return [].slice.call(arguments);
}

不太理解这段代码的原理,于是觉得弄清楚到底是怎么做到的

首先弄清楚slice方法

slice() 方法返回一个新的数组对象,一个由 begin 和 end 决定的原数组的浅拷贝

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]

可能我对于slice方法只理解到了这一层,所以我不明白上面代码为什么能实现
于是,在MDN上,我找到了下面的内容
在这里插入图片描述
看到这里谜团也就解开了,

数组slice方法还有另外一个作用,就是将类数组对象转换成数组,但是要将方法通过call()的方式绑定到 类数组对象 上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值