let nums = [1, 2, 3];
console.log( [...nums].map([].pop, nums) ) // 3, 2, 1
thisArg
для функции.pop()
будет вызываться в контексте начального массива nums
— последовательно выдирая из него последний из оставшихся элементов: 3, 2, 1nums
, соответственно, на каждой итерации будет становиться на 1 элемент короче.[...nums]
нужна только ради его первоначальной длины, чтобы вызвать дальнейшую магию правильное число раз.