Link http://www.iteye.com/news/26266

Sweet.js(糖包)是 Mozilla 的一个新项目,其将 Scheme 或 Rust 语言中的卫生宏(hygienic macros)带到了 JavaScript 平台。卫生宏是指展开宏时不会导致副作用,不会意外地捕捉到错误的标识。

通过宏可以更改 JavaScript 的语法,你可以巧妙地定制你一直想要的语言。比如:

嫌 JavaScript 中的 “function” 关键字太长?你可以使用 def 来定义函数。

def sweet(a) {
console.log("Macros are sweet!");
}
宏是这样实现的:

macro def {
case $name:ident $params $body => {
function $name $params $body
}
}
想用一种更好的方式来创建一个优雅的类:

class Person {
constructor(name) {
this.name = name;
}

say(msg) {
console.log(this.name + " says: " + msg);
}
}
var bob = new Person("Bob");
bob.say("Macros are sweet!");
通过宏可以这样实现:

macro class {
case $className:ident {
constructor $constParam $constBody
$($methodName:ident $methodParam $methodBody) ... } => {

function $className $constParam $constBody

$($className.prototype.$methodName
= function $methodName $methodParam $methodBody; ) ...

}
}
该项目源码托管在 Github 上,基于 2-clause BSD 协议。

官网:http://sweetjs.org/

源码:https://github.com/mozilla/sweet.js

感谢 wangguo 投递这篇资讯
声明:本文系 ITeye 网站发布的原创资讯,严禁任何网站转载本文,否则必将追究法律责任!

Link http://www.iteye.com/news/26266


↙↙↙阅读原文可查看相关链接,并与作者交流