当我运行以下 Coffeescript 代码时:
@sum = (x, y) -> x + y
我得到这个编译的Javascript:
(function() {
this.sum = function(x, y) {
return x + y;
};
}).call(this);
Coffeescript 中有没有办法用任意对象替换this
in之类的东西?.call(this)
myObject
当我运行以下 Coffeescript 代码时:
@sum = (x, y) -> x + y
我得到这个编译的Javascript:
(function() {
this.sum = function(x, y) {
return x + y;
};
}).call(this);
Coffeescript 中有没有办法用任意对象替换this
in之类的东西?.call(this)
myObject
myobj.sum = (x, y) -> x + y
应该编译为(更新:请参阅 Rob W 的编译选项答案):-
myobj.sum = function(x, y) {
return x + y;
};
这不是你想要的吗?因此,您可以进一步使用myobj.sum a, b
完整的代码..
myobj = {}
myobj.sum = (x, y) -> x + y
alert(myobj.sum 10,4)
(function() {
并且}).call(this);
不是编译的结果@sum = ...
,而是由coffee
可执行文件添加的。这是编译的实际结果:
this.sum = function(x, y) {
return x + y;
};
要获得不同/所需的输出,请使用以下代码coffee -b -c
运行(coffee -bc
或coffee --bare --compile
):
(->
@sum = (x, y) -> x + y
).call WHATEVER
变成
(function() {
return this.sum = function(x, y) {
return x + y;
};
}).call(WHATEVER);