使用 LiveScript,当您在文件中编写一些代码时,默认编译器会将编译后的代码包装在一个匿名函数中:
编译这个:
add10 = -> it + 10
给出了:
(function(){
var add10;
add10 = function(it){
return it + 10;
};
}).call(this);
没关系!但我想为我的模块导出一些 API 函数,所以我现在要做的是:
add10 = -> it + 10
this.add10 = add10
给出:
(function(){
var add10;
add10 = function(it){
return it + 10;
};
this.add10 = add10;
}).call(this);
我在浏览器上下文中工作,我想知道是否没有更好的解决方案。它确实有效,但我更喜欢这样的事情:
(function(w){
var add10;
add10 = function(it){
return it + 10;
};
w.add10 = add10;
}(this));
它的代码更少(在这样一个小例子中没有太大的区别)。