ecma中定义foreach:
Repeat, while k < len
Let Pk be ToString(k).
Let kPresent be HasProperty(O, Pk).
ReturnIfAbrupt(kPresent).
If kPresent is true, then
Let kValue be Get(O, Pk).
ReturnIfAbrupt(kValue).
Let funcResult be Call(callbackfn, T, kValue, k, O ).
ReturnIfAbrupt(funcResult).
Increase k by 1.
array(...items) :
Repeat, while k < numberOfArgs
Let Pk be ToString(k).
Let itemK be items[k].
Let defineStatus be CreateDataProperty(array, Pk, itemK).
Assert: defineStatus is true.
Increase k by 1.
Array(len)只相当于定义了一个length属性,没有进行任何k-v设置
至于spread这个,我只知道是转化成iterator,具体如何实现未知
【 在 zswolf2000 (少年壮志不言愁) 的大作中提到: 】
: 代码如下,啥也没打印出来。
: let array = new Array(10);
: array.forEach((x,i)=>{
: ...................
--
FROM 223.72.55.*