最近我了解了 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/