gpt4 book ai didi

javascript - `Array.from({length: 5}, (v, i) => i)` 是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 01:16:46 27 4
gpt4 key购买 nike

我可能在这里遗漏了一些明显的东西,但有人可以一步一步地分解为什么 Array.from({length: 5}, (v, i) => i) 返回 [0 , 1, 2, 3, 4]?

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/from

我没有详细了解为什么会这样

最佳答案

当 Javascript 检查一个方法是否可以被调用时,它使用 duck-typing .这意味着当你想从某个对象调用方法 foo 时,它应该是 bar 类型,然后它不会检查这个对象是否真的是 bar 但它检查它是否有方法 foo

因此在 JS 中,可以执行以下操作:

let fakeArray = {length:5};
fakeArray.length //5
let realArray = [1,2,3,4,5];
realArray.length //5

第一个类似于 fake javascript 数组(具有属性 length)。当 Array.from 获取属性 length 的值(在本例中为 5)时,它会创建一个长度为 5 的真实数组。

这种fakeArray 对象通常称为arrayLike

第二部分只是一个箭头函数,它用索引值(第二个参数)填充数组。

此技术对于模拟某些对象进行测试非常有用。例如:

let ourFileReader = {}
ourFileReader.result = "someResult"
//ourFileReader will mock real FileReader

关于javascript - `Array.from({length: 5}, (v, i) => i)` 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40528557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com