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 协议。
源码:https://github.com/mozilla/sweet.js
感谢 wangguo 投递这篇资讯
声明:本文系 ITeye 网站发布的原创资讯,严禁任何网站转载本文,否则必将追究法律责任!