js中的iterator與生成器

實現(xiàn)了__iterator__()方法,這個方法返回一個迭代器對象,迭代器對象要求實現(xiàn)next()方法,當next完結時,發(fā)拋出StopIteration異常,那么就可以用在for/in結構中,for/in循環(huán)自行處理Iterator()函數(shù)的調用及異常的處理。當然,也可以手動調用Iterator()函數(shù)來自行進行處理。
當對象沒有實現(xiàn)__iterator__()方法時,Iterator()函數(shù)返回一個內部實現(xiàn)的迭代器對象,這個迭代器能夠對自身的屬性進行迭代。

Javascript還引入了yield(關鍵字),使用yield的函數(shù)稱為生成器函數(shù),生成器函數(shù)通過yield返回值(所以也規(guī)定了它不能夠通過return返回值,這也是其特殊之處)。按照語法規(guī)定,生成器函數(shù)的調用,返回的是一個生成器,生成器對象的next()方法返回yield出來的值,并且下次調用能夠恢復生成器函數(shù)的執(zhí)行,直到函數(shù)再次yield。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 你不知道JS:異步 第四章:生成器(Generators) 在第二章,我們明確了采用回調表示異步流的兩個關鍵缺點:...
    purple_force閱讀 1,043評論 0 2
  • 原創(chuàng)文章&經(jīng)驗總結&從校招到A廠一路陽光一路滄桑 詳情請戳www.codercc.com 主要知識點:迭代器、生成...
    你聽___閱讀 888評論 0 1
  • 我們在學習web前端的路程起步時總是疑問,我們如何更好的遍歷元素呢?迭代器和生成器是什么?今天為大家?guī)吓c精彩的E...
    儂姝沁兒閱讀 3,511評論 0 6
  • 來之前只訂了三天住房,沒有提前預訂,又是旺季節(jié),三人住,環(huán)境又要好,大家都覺舒服,這次也難為了女兒。 問題出現(xiàn)了就...
    松美六郎閱讀 312評論 0 0
  • 歧視我們都懂,可是我們卻很少做到,我們常常在無形之中做一些歧視他人的事情,只是我們神經(jīng)太大條而沒有覺察,而受害者卻...
    霧起閱讀 204評論 0 0

友情鏈接更多精彩內容