复制自《Eloquent JavaScript》的代码报错ReferenceError: range is not defined,求助
解决ReferenceError: range is not defined的问题
问题根源:你使用的
range不是JavaScript内置函数,它是《Eloquent JavaScript》该章节前面示例中自定义的工具函数,和浏览器的DOMRange对象完全不是一回事——后者是用来操作文档选择范围的,不能生成数字序列,所以new Range()毫无作用。解决方案:先补上书中定义的
range函数,再运行你的代码。
书中的range函数实现如下(用于生成从start到end-1的数字数组):
function range(start, end) { let array = []; for (let i = start; i < end; i++) { array.push(i); } return array; }
- 完整可运行代码:
function range(start, end) { let array = []; for (let i = start; i < end; i++) { array.push(i); } return array; } function repeat(n, action) { for (let i = 0; i < n; i++) { console.log(action(...range(0, i))); } } repeat(5, Math.max);
运行后控制台会输出:
-Infinity 0 1 2 3
内容的提问来源于stack exchange,提问作者xuan xose
相关产品推荐
相关产品推荐

