亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)文章

  • JavaScript判斷瀏覽器類(lèi)型的方法

    JavaScript判斷瀏覽器類(lèi)型的方法

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

    js中鍵盤(pán)事件實(shí)例簡(jiǎn)析

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

    js實(shí)現(xiàn)音樂(lè)播放控制條

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

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

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

    momentjs使用詳細(xì)說(shuō)明

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

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

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

    原生javascript實(shí)現(xiàn)圖片無(wú)縫滾動(dòng)效果

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

    Js操作樹(shù)節(jié)點(diǎn)自動(dòng)折疊展開(kāi)的幾種方法

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

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

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

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

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

最新評(píng)論