沒想到程式碼一次測試成功.~~只不過是FF下面,修改一下支援IE了。由於IE不認function表達式.
var coroutine = null;
var cofn_this = null;
coroutine.apply(cofn_this, arguments);
}
/ NOTE: IE eval("function(){}") does not return a function object.
eval 🎜 > coroutine = cofn;
turn fn.apply(this)
};
}
for (var i = 0; i yield(this[i]) // example.
this.display = window.alert;
var A = [1,2,3,4,5];
A.for }, this) ;
其中有一個技巧:
fn = eval(fn.toString())
用來將fn中的引文綁定到目前的脈絡中,這樣fn中的yield才會引用到我們定義的yield函數。
留意一下,如果你需要在coroutine裡訪問其他this上下文,需要向iterator傳遞進去, 如 example.