国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

JavaScript-Iterator Problem mit Iterator?
ringa_lee
ringa_lee 2017-05-19 10:47:40
0
2
863

Siehe das Kapitel über Iteratoren auf MDN
https://developer.mozilla.org...Generator-Ausdrücke

Dann üben Sie alleine und finden Sie ein Problem.

//下面這個例子 ,想要實(shí)現(xiàn)打印3,4,5
var add=function(x,y){
    var current=x;
    return {
        [Symbol.iterator]:function(){return this;},
        next:function(){  return current++;}
    }
}


var it=add(3,5);
console.log(it.next());  

console.log(it.next()); 

console.log(it.next()); 

//結(jié)果  3 4 5

//注意與下面這種寫法的區(qū)別
console.log(add(3,5).next()); //3

console.log(add(3,5).next()); //3

console.log(add(3,5).next()); //3

Der Code ist relativ einfach. Ich m?chte fragen, warum ich bei der zweiten Methode keine Iterationen generieren kann, wenn ich ihr nicht die Methode add() zuweise. Nach meinem Verst?ndnis entspricht add(3,5) in diesem Beispiel dem, aber das Ergebnis ist offensichtlich nicht der Fall.

ringa_lee
ringa_lee

ringa_lee

Antworte allen(2)
黃舟

Iterator的遍歷過程是這樣的。

(1)創(chuàng)建一個指針對象,指向當(dāng)前數(shù)據(jù)結(jié)構(gòu)的起始位置。也就是說,遍歷器對象本質(zhì)上,就是一個指針對象。

(2)第一次調(diào)用指針對象的next方法,可以將指針指向數(shù)據(jù)結(jié)構(gòu)的第一個成員。

(3)第二次調(diào)用指針對象的next方法,指針就指向數(shù)據(jù)結(jié)構(gòu)的第二個成員。

(4)不斷調(diào)用指針對象的next方法,直到它指向數(shù)據(jù)結(jié)構(gòu)的結(jié)束位置。

phpcn_u1582

每次 執(zhí)行add都會得到一個對象。這些對象各有一份互相獨(dú)立的current。所以一次 it = add() 和多次 add() 是不等效的。

var it=add(3,5); // 對象1
console.log(it.next()); // 對象1 第1次 
console.log(it.next()); 
console.log(it.next()); // 對象1 第3次

console.log(add(3,5).next()); // 對象2 第1次
console.log(add(3,5).next()); // 對象3 第1次
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage