javascript_javascript スキルで yield を実装する方法

WBOY
リリース: 2016-05-16 17:17:13
オリジナル
859 人が閲覧しました

コードが一度もテストに成功するとは思いませんでした。~~これは、IE をサポートするために変更された単なる FF です。 IE は関数式を認識しないためです。

コードをコピー コードは次のとおりです。
var Iterator = function (fn) {
var coroutine = null;
var cofn_this = null;
var yield = function() {
coroutine.apply(cofn_this, argument); // IE をサポートします。
/ 注: IE 評価("function(){}") は関数オブジェクトを返しません。 > coroutine = cofn;
cothis 🎜> Array.prototype.forEach = new Iterator(function () {
for (var i) = 0; i < this.length i ) {
= 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 関数を参照するようになります。

コルーチン内の他の this コンテキストにアクセスする必要がある場合は、それを example などのイテレーターに渡す必要があることに注意してください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!