将下面的JavaScript写成CoffeeScript的最短方法是什么?
var obj = {};
(function(){
this.foo = "bar";
}).call(obj);我可以这样做:
obj = {}
(->
@foo = "bar"
).call obj但是有没有办法去掉函数定义周围的括号呢?这几乎是可行的:
do =>
@foo = "bar"胖箭头运算符'=>‘自动将函数绑定到’...except‘的当前值。在使用胖箭头时,有没有办法指定一个替代的'this‘值?
发布于 2011-08-20 16:20:31
您不能去掉圆括号,但可以在一行中编写该函数。
(-> @foo = 'bar').call obj发布于 2011-08-20 23:23:35
你应该接受Dogbert的回答。但是,如果您真的在寻找编写代码的最短方法,答案是
obj.foo = 'bar'抵制过度使用匿名函数的诱惑。
发布于 2011-08-21 16:28:02
您从一开始就有了答案,但应该添加以下内容:
obj = {}
do (obj) ->
obj.foo = "bar",它编译为
(function(obj){
return obj.foo = 'bar';
})(obj);https://stackoverflow.com/questions/7130621
复制相似问题