今天复习基础知识无意中在MDN上找到Array.prototype.keys()一个有意思的用法,在非数组对象上使用keys(),使用call读取this上的length属性,然后生成0~length-1的索引,并且不会实际访问,代码如下:
1 function sum(num = 0) { 2 const arrayLike = { 3 length: num + 1 4 } 5 let sumNum = 0 6 for (const entry of Array.prototype.keys.call(arrayLike)) { 7 sumNum += entry 8 } 9 return sumNum 10 } 11 12 sum(10)//55
写起来比递归麻烦一些,也没什么实际用途,仅供理解。
标签:arrayLike,keys,length,sumNum,Array,prototype From: https://www.cnblogs.com/zousi/p/18083967