Javascript JS中数字原型的自定义迭代器

Javascript JS中数字原型的自定义迭代器,javascript,for-loop,iterator,prototype,Javascript,For Loop,Iterator,Prototype,最近我了解了JS迭代器,它被用于(of)循环的中。因为在JS中,甚至原语都有一个原型,我想知道是否可以扩展数字原型,以便以下表达式是有效的: for(let i of 10) console.log(i); //0 1 2 3 4 5 6 7 8 9 显然,这只适用于整数,但有没有办法实现呢 希望有,但我自己无法创建它,因为我对JS的这一部分不熟悉…当然,只需定义Number.prototype[Symbol.iterator]: Number.prototype[Symbol.iterat

最近我了解了JS迭代器,它被用于(of)循环的
中。因为在JS中,甚至原语都有一个原型,我想知道是否可以扩展数字原型,以便以下表达式是有效的:

for(let i of 10) console.log(i); //0 1 2 3 4 5 6 7 8 9
显然,这只适用于整数,但有没有办法实现呢


希望有,但我自己无法创建它,因为我对JS的这一部分不熟悉…

当然,只需定义
Number.prototype[Symbol.iterator]

Number.prototype[Symbol.iterator]=函数(){
设currentNum=0;
返回{
下一个:()=>(
currentNum==这个
?{完成:正确}
: {
值:currentNum++,
完成:错误
}
)
}
}
对于(const i/10)console.log(i)您可以将for作为编号的原型

Number.prototype[Symbol.iterator]=函数*(){
对于(var i=0;i

.as console wrapper{max height:100%!important;top:0;}
您可以通过定义初始值(在本例中为0)并在屈服循环中增加该值,直到该值等于以下数字:

Number.prototype[Symbol.iterator]=函数*(){
var值=0;

//
Number.prototype[Symbol.iterator]=函数*(){
如果(!Number.isInteger(this.valueOf()))
抛出新的TypeError(“只能对整数进行迭代。”);
如果(该值大于0)

例如(让i=0;我知道这是一种不好的做法,我不会经常使用它,它更像是一个JS实验,试图学习新东西:)