麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 21:46:25
字體:
供稿:網(wǎng)友

沒想到代碼一次測(cè)試成功.~~只不過是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里訪問其他this上下文,需要向iterator傳遞進(jìn)去, 如 example.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 全黄裸片武则天一级第4季 偿还电影免费看 | 国产妇女乱码一区二区三区 | 欧洲黄色一级视频 | 国产一级一片免费播放 | 69性欧美高清影院 | 99视频有精品 | 国产一级淫 | www国产成人免费观看视频 | 黄色影院在线看 | 九九综合九九 | 亚洲国产精品久久久久久久久 | 亚洲精久久| 成人国产免费观看 | 91 久久 | 看免费5xxaaa毛片 | 免费一级毛片观看 | 久久精品亚洲精品国产欧美kt∨ | 国产一级毛片a | 青青草免费观看完整版高清 | a免费毛片 | 羞羞视频免费入口网站 | 亚洲乱码精品久久久久 | 免费观看欧美一级片 | 7777视频| 羞羞视频免费网站含羞草 | 色综合网在线观看 | 国产精品久久久久久一区二区三区 | 日韩精品99久久久久久 | 欧美成人免费一区二区三区 | 一区小视频| 成人福利免费在线观看 | 免费国产人成网站 | 蜜桃一本色道久久综合亚洲精品冫 | 欧美日韩在线播放一区 | 91av日韩| 久草在线高清 | 欧美一级美国一级 | 欧美成人三级大全 | 中文字幕在线观看www | 久久久久国产成人免费精品免费 | 欧美性生交xxxxx久久久缅北 |