CoffeeScript 编程:流畅接口、歧义处理与元编程探索
流畅接口(Fluent Interfaces)
流畅接口的引入
with 语句会隐藏变量作用域,使程序产生歧义,已在 JavaScript 中被弃用,CoffeeScript 则完全没有 with 语句。流畅接口能避免这种歧义,但在结合 CoffeeScript 的显著缩进使用时,也存在潜在的歧义。
缩进问题
在 CoffeeScript 中使用流畅接口时,需要注意缩进。在 CoffeeScript 1.7 之前的版本,以下两种写法可能会产生意外结果:
turtle = new Turtle
turtle
.forward 2
.rotate 90
.forward 4
turtle
.forward 2
.rotate 90
.forward 4
CoffeeScript 1.6.3 会将其编译为:
turtle.forward(2..rotate(90..forward(4)));
这会导致 JavaScript 报错 Object 90 has no method forward 。
超级会员免费看
订阅专栏 解锁全文
14

被折叠的 条评论
为什么被折叠?



