Nedir &;*" JavaScript " fonksiyonu?
this sayfa içinde yeni bir JavaScript işlevi bir tür buldum:
// NOTE: "function*" is not supported yet in Firefox.
// Remove the asterisk in order for this code to work in Firefox 13
function* fibonacci() { // !!! this is the interesting line !!!
let [prev, curr] = [0, 1];
for (;;) {
[prev, curr] = [curr, prev curr];
yield curr;
}
}
Ben function*
olmanın ne demek olduğunu zaten what yield
, let
and [?,?]=[?,?]
do, biliyorum ama hiçbir fikrim yok. Ne oldu?
P. S. impossible yıldız işareti ile ifadeleri aramak için Google çalışıyor, (they're used as placeholders) rahatsız etmeyin.
CEVAP
ECMA için önerilen bir sözdizimi.gelecek.
Mozilla Dave Herman EcmaScript.next hakkında bir konuşma yaptı. 30:15 jeneratörler hakkında konuşuyor. Daha önce Mozilla deneysel olarak önerilen dil değişiklikleri Komitesi yönlendirmek yardımcı olmak için nasıl uyguladığını anlatıyor. Dave yakından Brendan Eich, Mozilla CTO (sanırım), ve orijinal JavaScript tasarımcı ile çalışır.
ECMA çalışma grubu wiki hakkında daha fazla ayrıntı bulabilirsiniz: http://wiki.ecmascript.org/doku.php?id=harmony:generators
Çalışma grubu (TC-39) ECMA dair genel bir kabul vardır.bir sonraki jeneratör yineleyici teklifi falan olmalı, ama bu bir son değildir. Bu dili sonraki sürümünde bir değişiklik olmadan gösterilmesini düşünmemelisiniz, ve eğer değiştirmek değil ise bile, muhtemelen yaygın bir süreliğine diğer tarayıcılarda görünmez.
Genel bakış
Birinci sınıf, nesneleri askıya yürütme bağlamı (yani, fonksiyon aktivasyon) şifrelenmiş olarak temsil coroutines. Önce sanat: Python, Simge, Lua, Düzeni, Smalltalk.
Örnekler
“Fibonacci sayıları 2. (davranış rağmen sıra sonsuz ^sup>53):
function* fibonacci() { let [prev, curr] = [0, 1]; for (;;) { [prev, curr] = [curr, prev curr]; yield curr; } }
Jeneratörler döngüler tekrarlanır üzerinde olabilir:
for (n of fibonacci()) { // truncate the sequence at 1000 if (n > 1000) break; print(n); }
Jeneratör kullanımına
let seq = fibonacci(); print(seq.next()); // 1 print(seq.next()); // 2 print(seq.next()); // 3 print(seq.next()); // 5 print(seq.next()); // 8
&Quot;sıkı" kullanın; JavaScript, ...
Bu nedir (() fonksiyonu { } )() javasc...
"Gönder fonksiyonu" hata Jav...
&; En iyi" JavaScript global bir ...
&Quot anlamı nedir;$" javascript ...