欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

沒想到代碼一次測試成功.~~只不過是FF下面,修改一下支持IE了。由于IE不認function表達式.

復制代碼 代碼如下:

       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);

其中有一個技巧:

        fn = eval(fn.toString())

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

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

相關(guān)文章

  • JavaScript判斷瀏覽器類型的方法

    JavaScript判斷瀏覽器類型的方法

    這篇文章主要介紹了JavaScript判斷瀏覽器類型的方法,可實現(xiàn)針對IE、火狐、谷歌等瀏覽器的判斷,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • js中鍵盤事件實例簡析

    js中鍵盤事件實例簡析

    這篇文章主要介紹了js中鍵盤事件,以一個較為簡單的實例形式分析了js響應鍵盤事件的操作技巧,需要的朋友可以參考下
    2015-01-01
  • js實現(xiàn)音樂播放控制條

    js實現(xiàn)音樂播放控制條

    這篇文章主要為大家詳細介紹了js實現(xiàn)音樂播放控制條,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • JavaScript中的變量提升和函數(shù)提升

    JavaScript中的變量提升和函數(shù)提升

    這篇文章主要介紹了JavaScript中的變量提升和函數(shù)提升,在js中對變量進行操作后打印值經(jīng)常會出現(xiàn)undefined的現(xiàn)象。其實原因是因為js中有一個叫做變量提升的功能
    2022-07-07
  • momentjs使用詳細說明

    momentjs使用詳細說明

    這篇文章主要介紹了momentjs詳細使用說明,使用 Moment.js 可以輕松地獲取上周、上月和前三個月的起始和結(jié)束時間,在示例中,我們傳入了 '2023-07-15',并將返回的日期信息存儲在 dateInfo 變量中,然后將其打印到控制臺上,需要的朋友可以參考下
    2023-07-07
  • JavaScript設(shè)置獲取和設(shè)置屬性的方法

    JavaScript設(shè)置獲取和設(shè)置屬性的方法

    這篇文章主要介紹了JavaScript設(shè)置獲取和設(shè)置屬性的方法,學會使用getAttribute、setAttribute的用法,需要的朋友可以參考下
    2015-03-03
  • 原生javascript實現(xiàn)圖片無縫滾動效果

    原生javascript實現(xiàn)圖片無縫滾動效果

    這篇文章主要介紹了原生javascript實現(xiàn)圖片無縫滾動效果的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Js操作樹節(jié)點自動折疊展開的幾種方法

    Js操作樹節(jié)點自動折疊展開的幾種方法

    這篇文章主要介紹了Js操作樹節(jié)點自動折疊展開的幾種方法,需要的朋友可以參考下
    2014-05-05
  • 基于Web Audio API實現(xiàn)音頻可視化效果

    基于Web Audio API實現(xiàn)音頻可視化效果

    這篇文章主要介紹了基于Web Audio API實現(xiàn)音頻可視化效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • JavaScript組件開發(fā)之輸入框加候選框

    JavaScript組件開發(fā)之輸入框加候選框

    本文給大家分享基于js組件開發(fā)的輸入框加候選框的實例代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的的朋友參考下
    2017-03-03

最新評論