@pockry
2015-09-29T13:46:53.000000Z
字数 1049
阅读 2085
前端 ES6
(译者注:下面这是原作者创作的一个剧本,他将es6中的各种函数和语法拟人化,以讲解生成器generator的实现原理)**场景 - 另一个世界的计算机,白天**for loop女士独自站在舞台上,戴着一顶安全帽,手里拿着一个笔记板,上面记载着所有的事情。for loop:(电话响起)somewords()!generator出现:这是一位高大的、有着一丝不苟绅士外表的黄铜机器人。它看起来足够友善,但给人的感觉仍然是冷冰冰的金属。for loop:(潇洒地拍了拍她的手)好吧!我们去找些事儿做吧。(对generator说).next()!generator动了起来,就像突然拥有了生命。generator:{value: "hello", done: false}然而猝不及防的,它以一个滑稽的姿势停止了动作。for loop:alert!alert小子飞快冲进舞台,眼睛大睁,上气不接下气。我们感觉的到他一向如此。for loop:对user说“hello”。alert小子转身冲下舞台。alert:(舞台下,大声尖叫)一切都静止了!你正在访问的页面说,“hello”!停留了几秒钟后,alert小子跑回舞台,穿过所有人滑停在for loop女士身边。alert:user说ok。for loop:(潇洒地拍了拍她的手)好吧!我们去找些事儿做吧。(回到generator身边).next()!generator又一次焕发生机。generator:{value: "world", done: false}它换了个姿势又一次冻结。for loop:alert!alert:(已经跑起来)正在搞定!(舞台下,大声尖叫)一切都静止了!你正在访问的页面说,“world”!又一次暂停,然后alert突然跋涉回到舞台,垂头丧气的。alert:user再一次说ok,但是…但是请阻止这个页面创建额外的对话。他噘着嘴离开了。for loop:(潇洒地拍了拍她的手)好吧!我们去找些事儿做吧。(回到generator身边).next()!generator第三次焕发生机。generator:(庄严的){value: undefined, done: true}它的头低下了,光芒从它的眼里消失。它不再移动。for loop我的午餐时间到了。她离开了。一会儿,garbage collector(垃圾收集器)老头进入,捡起了奄奄一息的generator,将它带下舞台。好吧,这一出戏不太像哈姆雷特,但你应该可以想象得出来。
