国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

es6學習筆記-自己動手實現迭代器

iliyaku / 2251人閱讀

摘要:如果你了解過,那么你應該對比較熟悉了,但是你知道背后的原理是什么么嗎首先調用集合的方法,緊接著返回一個新的迭代器對象。迭代器對象可以是任意具有方法的對象循環將重復調用這個方法,每次循環調用一次。

如果你了解過ES6,那么你應該對for...of比較熟悉了,但是你知道for...of背后的原理是什么么嗎?
for...of首先調用集合的[Symbol.Iterator]()方法,緊接著返回一個新的迭代器對象。迭代器對象可以是任意具有.next()方法的對象;for ...of循環將重復調用這個方法,每次循環調用一次。舉個例子,下面是最簡單的迭代器:

 var zerosForeverIterator={
      [Symbol.iterator]:function(){
        return this;
      },
      next:function(){
        return {done:false,value:0};
      }
   }

我們可以寫一個簡單的for...of循環然后按照下面的方法調用重寫被迭代的對象:
首先是for...of循環:

for(VAR of ITERABLE){
//一些語句
}

然后是一個使用以下方法和少許臨時變量實現的與之前大致相當的示例:

var $iterator=ITERABLE[Symbol.iterator()];
 var $result=$iterator.next();
 while(!$result.done){
  vAR=$result.value;
  //一些語句
  $result=$iterator.next();
 }

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81063.html

相關文章

  • 學習ES6筆記──工作中常用到的ES6語法

    摘要:但是有了尾調用優化之后,遞歸函數的性能有了提升。常被用來檢查對象中是否存在某個鍵名,集合常被用來獲取已存的信息。循環解構對象本身不支持迭代,但是我們可以自己添加一個生成器,返回一個,的迭代器,然后使用循環解構和。 一、let和const 在JavaScript中咱們以前主要用關鍵var來定義變量,ES6之后,新增了定義變量的兩個關鍵字,分別是let和const。對于變量來說,在ES5中...

    curried 評論0 收藏0
  • Java進階之路

    摘要:探索專為而設計的將探討進行了何種改進,以及這些改進背后的原因。關于最友好的文章進階前言之前就寫過一篇關于最友好的文章反響很不錯,由于那篇文章的定位就是簡單友好,因此盡可能的摒棄復雜的概念,只抓住關鍵的東西來講,以保證大家都能看懂。 周月切換日歷 一個可以進行周月切換的日歷,左右滑動的切換月份,上下滑動可以進行周,月不同的視圖切換,可以進行事件的標記,以及節假日的顯示,功能豐富 Andr...

    sushi 評論0 收藏0
  • javascript設計模式學習筆記迭代模式

    摘要:迭代器模式順序訪問一個對象的對象的內部可分為內部迭代器和外部迭代器內部迭代器就是常見的或者外部迭代器實現了簡單實現 迭代器模式 順序訪問一個對象的 對象的內部 可分為內部迭代器 和 外部迭代器 內部迭代器 就是常見的 forEach(), 或者 $.each() function forEach(arr, callback) { var i = 0, len...

    Jason_Geng 評論0 收藏0
  • 《深入理解ES6筆記——迭代(Iterator)和生成(Generator)(8)

    摘要:迭代器是一種特殊對象,每一個迭代器對象都有一個,該方法返回一個對象,包括和屬性。默認情況下定義的對象是不可迭代的,但是可以通過創建迭代器。在迭代器中拋出錯誤不再執行生成器返回語句生成器中添加表示退出操作。迭代器是一個對象。 迭代器(Iterator) ES5實現迭代器 迭代器是什么?遇到這種新的概念,莫慌張。 迭代器是一種特殊對象,每一個迭代器對象都有一個next(),該方法返回一個對...

    AndroidTraveler 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<