最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript實(shí)現(xiàn)yield的方法

 更新時(shí)間:2013年11月06日 16:43:16   作者:  
這篇文章介紹了javascript實(shí)現(xiàn)yield的方法,有需要的朋友可以參考一下

沒(méi)想到代碼一次測(cè)試成功.~~只不過(guò)是FF下面,修改一下支持IE了。由于IE不認(rèn)function表達(dá)式.

復(fù)制代碼 代碼如下:

       var Iterator = function (fn) {
            var coroutine = null;
            var cofn_this = null;
            var yield = function() {
                coroutine.apply(cofn_this, arguments);
            }
            // support IE.
            // NOTE: IE eval("function(){}") does not return a function object.
            eval('fn = ' + fn.toString());
            return function(cofn, cothis){
                coroutine = cofn;
                cofn_this = cothis;
                return fn.apply(this)
            };
        }
        Array.prototype.forEach = new Iterator(function () {
            for (var i = 0; i < this.length; i ++) {
                yield(this[i])
            }
        });
        // example.
        this.display = window.alert;
        var A = [1,2,3,4,5];
        A.forEach(function(it){
            this.display(it)
        }, this);

其中有一個(gè)技巧:

        fn = eval(fn.toString())

        用于將fn中的引用綁定到當(dāng)前的上下文中,這樣fn中的yield才會(huì)引用到我們定義的yield函數(shù)。

        注意一下,如果你需要在coroutine里訪問(wèn)其他this上下文,需要向iterator傳遞進(jìn)去, 如 example.

相關(guān)文章

  • 編寫(xiě)更好的JavaScript條件式和匹配條件的技巧(小結(jié))

    編寫(xiě)更好的JavaScript條件式和匹配條件的技巧(小結(jié))

    這篇文章主要介紹了編寫(xiě)更好的JavaScript條件式和匹配條件的技巧(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 移動(dòng)端touch拖動(dòng)和click事件沖突問(wèn)題解決

    移動(dòng)端touch拖動(dòng)和click事件沖突問(wèn)題解決

    這篇文章主要為大家介紹了移動(dòng)端touch拖動(dòng)和click事件沖突問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 微信小程序左滑動(dòng)顯示菜單功能的實(shí)現(xiàn)

    微信小程序左滑動(dòng)顯示菜單功能的實(shí)現(xiàn)

    這篇文章主要介紹了微信小程序左滑動(dòng)顯示菜單功能的實(shí)現(xiàn),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • javascript高級(jí)的文件目錄排序代碼

    javascript高級(jí)的文件目錄排序代碼

    這幾天在做一個(gè)文件管理的模塊,里面有排序的功能,產(chǎn)品經(jīng)理看了說(shuō)希望能做出更加智能的文件排序功能,就像是win7的名稱(chēng)排序一樣,主要就是文件名中的數(shù)字會(huì)按大小排序,而不是直接按ascii碼 ,這兩天晚上沒(méi)事,就先寫(xiě)了這個(gè)排序方法,下個(gè)版本中就可以用上了
    2010-08-08
  • 微信小程序如何調(diào)用圖片接口API并居中顯示

    微信小程序如何調(diào)用圖片接口API并居中顯示

    這篇文章主要介紹了微信小程序如何調(diào)用圖片接口API并居中顯示,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • 淺析JSONP技術(shù)原理及實(shí)現(xiàn)

    淺析JSONP技術(shù)原理及實(shí)現(xiàn)

    這篇文章主要介紹了淺析JSONP技術(shù)原理及實(shí)現(xiàn) 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • 淺談JavaScript 覆蓋原型以及更改原型

    淺談JavaScript 覆蓋原型以及更改原型

    下面小編就為大家?guī)?lái)一篇淺談JavaScript 覆蓋原型以及更改原型。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨過(guò)來(lái)看看吧
    2016-08-08
  • JavaScript手寫(xiě)一個(gè)前端存儲(chǔ)工具庫(kù)

    JavaScript手寫(xiě)一個(gè)前端存儲(chǔ)工具庫(kù)

    在項(xiàng)目開(kāi)發(fā)的過(guò)程中,為了減少提高性能,減少請(qǐng)求,開(kāi)發(fā)者往往需要將一些不易改變的數(shù)據(jù)放入本地緩存中。本文就來(lái)用JavaScript手寫(xiě)一個(gè)前端存儲(chǔ)工具庫(kù),希望對(duì)大家有所幫助
    2023-02-02
  • javascript定時(shí)保存表單數(shù)據(jù)的代碼

    javascript定時(shí)保存表單數(shù)據(jù)的代碼

    我相信有不少TX用過(guò)QQ或163的郵箱吧?他們中有一個(gè)比較有用且有趣的功能,如果您在編寫(xiě)郵件,那在固定一個(gè)時(shí)間頻率內(nèi),它會(huì)自動(dòng)將您的郵件內(nèi)容保存起來(lái),以免丟失。
    2011-03-03
  • JavaScript中判斷變量是數(shù)組、函數(shù)或是對(duì)象類(lèi)型的方法

    JavaScript中判斷變量是數(shù)組、函數(shù)或是對(duì)象類(lèi)型的方法

    這篇文章主要介紹了JavaScript中判斷變量是數(shù)組、函數(shù)或是對(duì)象類(lèi)型的方法,需要的朋友可以參考下
    2015-02-02

最新評(píng)論

游戏| 资溪县| 兴海县| 化州市| 苏尼特左旗| 顺平县| 太保市| 长顺县| 安阳市| 敖汉旗| 三亚市| 乐业县| 石首市| 富锦市| 泸定县| 五常市| 登封市| 赤壁市| 登封市| 哈尔滨市| 紫云| 河西区| 建阳市| 武威市| 富锦市| 鄄城县| 伊宁县| 文化| 霍林郭勒市| 油尖旺区| 敖汉旗| 清远市| 渭南市| 西充县| 济源市| 新宁县| 南澳县| 灵川县| 岢岚县| 禹城市| 阜新|