国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【react】react18的學(xué)習(xí)(十二)– 底層原理(二)之 迭代器 iterator

這篇具有很好參考價(jià)值的文章主要介紹了【react】react18的學(xué)習(xí)(十二)– 底層原理(二)之 迭代器 iterator。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

迭代器iterator

是一種 ES6 規(guī)范,具有這種機(jī)制的數(shù)據(jù)結(jié)構(gòu)才可以使用for of循環(huán):返回每一項(xiàng)的值;
原型鏈具有Symbol.iterator屬性的數(shù)據(jù)結(jié)構(gòu)都具備;如數(shù)組、部分類數(shù)組、字符串等;
普通對(duì)象就不能用;

for-of循環(huán)原理:循環(huán)獲取屬性值;文章來源地址http://www.zghlxwxcb.cn/news/detail-604635.html

  • 執(zhí)行可迭代原型鏈上的Symbol.iterator方法,該方法返回一個(gè)包含next方法的對(duì)象;
  • 通過循環(huán)執(zhí)行next方法,得到方法返回的對(duì)象,根據(jù)對(duì)象中值拋出返回值;
let obj = {
  name: 'aa',
  age: 10,
}

Object.prototype[Symbol.iterator] = function iterator() {
  let self = this,
    index = -1,
    keys = Reflect.ownKeys(self)
  console.log(keys) //  ['name', 'age']
  return {
    next() {
      index++
      if (index > keys.length - 1) {
        return {
          done: true,
          value: undefined,
        }
      }
      return {
        done: false,
        value: self[keys[index]],
      }
    },
  }
}
for (const iterator of obj) {
  console.log(iterator) // aa 10
}

到了這里,關(guān)于【react】react18的學(xué)習(xí)(十二)– 底層原理(二)之 迭代器 iterator的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java中的Iterator底層原理實(shí)現(xiàn)

    Java中的Iterator底層原理實(shí)現(xiàn)

    Iterator主要有 兩個(gè)抽象方法 ,讓子類實(shí)現(xiàn)。 hasNext ()用來判斷還有沒有數(shù)據(jù)可供訪問。 next ()方法用于訪問集合的下一個(gè)數(shù)據(jù)。 這兩個(gè)方法不像List的get()那樣依賴索引獲取數(shù)據(jù),也不像Queue的poll方法那樣依賴特定規(guī)則獲取數(shù)據(jù)。 迭代器的方法將通用性做到了極致, 可以訪問

    2023年04月12日
    瀏覽(21)
  • [Unity] 基于迭代器的協(xié)程底層原理詳解

    Unity 是單線程設(shè)計(jì)的游戲引擎, 所有對(duì)于 Unity 的調(diào)用都應(yīng)該在主線程執(zhí)行. 倘若我們要實(shí)現(xiàn)另外再執(zhí)行一個(gè)任務(wù), 該怎么做呢? 答案就是協(xié)程. 協(xié)程本質(zhì)上是基于 C# yield 迭代器的, 使用 yield 語法生成的返回迭代器的方法, 其內(nèi)部的邏輯執(zhí)行, 是 “懶” 的, 只有在調(diào)用 MoveNext 的時(shí)

    2024年01月16日
    瀏覽(18)
  • Spring(18) @Order注解介紹、使用、底層原理

    Spring(18) @Order注解介紹、使用、底層原理

    @Order :是 spring-core 包下的一個(gè)注解。@Order 作用是 定義 Spring IOC 容器中 Bean 的執(zhí)行順序 。 注意: Spring 的 @Order 注解或者 Ordered 接口,不決定 Bean 的加載順序和實(shí)例化順序,只決定 Bean 注入到 List 中的順序。 @Order 注解接受一個(gè)整數(shù)值作為參數(shù), 數(shù)值越小表示優(yōu)先級(jí)越高 。

    2024年02月20日
    瀏覽(29)
  • React底層原理分析(簡單大白話版本)

    react包 react-dom包 react-reconciler包 scheduler包 Fiber對(duì)象 diff算法 深度優(yōu)先遍歷? 堆排序 鏈表,棧操作 react合成事件

    2024年01月20日
    瀏覽(26)
  • <Java Iterator> 迭代器Iterator雙層循環(huán)

    案例分享: 測試輸出:

    2024年02月15日
    瀏覽(24)
  • 深入篇【C++】手搓模擬實(shí)現(xiàn)list類(詳細(xì)剖析底層實(shí)現(xiàn)原理)&&模擬實(shí)現(xiàn)正反向迭代器【容器適配器模式】

    深入篇【C++】手搓模擬實(shí)現(xiàn)list類(詳細(xì)剖析底層實(shí)現(xiàn)原理)&&模擬實(shí)現(xiàn)正反向迭代器【容器適配器模式】

    1.一個(gè)模板參數(shù) 在模擬實(shí)現(xiàn)list之前,我們要理解list中的迭代器是如何實(shí)現(xiàn)的。 在vector中迭代器可以看成一個(gè)指針,指向vector中的數(shù)據(jù)。它的解引用會(huì)訪問到具體的數(shù)據(jù)本身,++會(huì)移動(dòng)到下一個(gè)數(shù)據(jù)位置上去,這些都是因?yàn)関ector具有天生的優(yōu)勢:空間上是連續(xù)的數(shù)組,這樣指

    2024年02月15日
    瀏覽(34)
  • React18原理: 時(shí)間分片技術(shù)選擇

    React18原理: 時(shí)間分片技術(shù)選擇

    渲染1w個(gè)節(jié)點(diǎn)的不同方式 1 )案例1:一次渲染1w個(gè)節(jié)點(diǎn) 1 次完成 1w 個(gè)節(jié)點(diǎn)的渲染 可以看到,圈中的部分,明顯被阻塞,這一塊絕對(duì)會(huì)導(dǎo)致用戶體驗(yàn)很差 2 )案例2: 1w 個(gè)節(jié)點(diǎn)分100次執(zhí)行,每次執(zhí)行100個(gè) 這里,40ms 執(zhí)行一次,100次,共4s執(zhí)行完成 可以看到,沒有明顯的阻塞 為什

    2024年02月21日
    瀏覽(39)
  • <Java Iterator> 迭代器Iterator雙層循環(huán) 案例分享

    需求: 需要一個(gè)按鈕,每次執(zhí)行的時(shí)候,調(diào)接口刷新數(shù)據(jù)庫表中的數(shù)據(jù): 刷新條件: 如果接口獲取的數(shù)據(jù)和數(shù)據(jù)庫表的數(shù)據(jù)完全一致則不刷新,如果不一致,則新增數(shù)據(jù);

    2024年02月15日
    瀏覽(51)
  • C++迭代器(STL迭代器)iterator詳解

    C++迭代器(STL迭代器)iterator詳解

    要訪問順序容器和關(guān)聯(lián)容器中的元素,需要通過“迭代器(iterator)”進(jìn)行。迭代器是一個(gè)變量,相當(dāng)于容器和操縱容器的算法之間的中介。迭代器可以指向容器中的某個(gè)元素,通過迭代器就可以讀寫它指向的元素。從這一點(diǎn)上看,迭代器和指針類似。 迭代器按照定義方式分

    2024年02月03日
    瀏覽(22)
  • 迭代器 Iterator

    迭代器是一種設(shè)計(jì)模式,它用于遍歷集合或容器中的元素,能夠訪問集合的元素而無需關(guān)心集合的內(nèi)部結(jié)構(gòu): 特點(diǎn): 封裝集合訪問 :迭代器封裝了對(duì)集合元素的訪問,通過迭代器訪問集合中的元素,而無需了解集合的內(nèi)部結(jié)構(gòu)或?qū)崿F(xiàn)方式。 統(tǒng)一接口 :迭代器提供了一致的

    2024年02月08日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包