javascript - JS中数字原型(prototype)的自定义迭代器

标签 javascript for-loop iterator prototype

最近我了解了 JS 迭代器,在 for( of ) 中使用过。循环。由于在 JS 中甚至原语都有一个原型(prototype),我想知道是否可以扩展 Number 原型(prototype),以便以下是一个有效的表达式:

for(let i of 10) console.log(i); //0 1 2 3 4 5 6 7 8 9

显然这仅适用于整数,但有没有办法实现这一点?

希望有,但我无法自己创建这个,因为我是 JS 的这一部分的新手......

最佳答案

您可以使用 Generator 对于 Symbol.iterator 作为 Number 的原型(prototype).

Number.prototype[Symbol.iterator] = function* () {
    for (var i = 0; i < this; i++) {
        yield i;
    }
};

console.log([...10]);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - JS中数字原型(prototype)的自定义迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51608130/

相关文章:

JavaScript : ReInitialize Global Variable without refreshing the page

javascript - 修改feathers hook.result中的响应状态码

javascript - 如何将项目插入 Angular $scope.array?

java - 如何对 HashMap 的所有键进行循环?

python - query.next() 慢吗?

c++ - 我应该使用什么 STL 容器来行走一棵树?

javascript - 将 JS 对象字符串化为 JSON(将函数字符串化为属性)

javascript - 在更改事件中更改 Select2 选项的字体颜色

javascript - async.waterfall 重复调用

java - 在 Java 中,一秒钟需要多长时间?测量 Java 中的延迟时间