函数.调用CoffeeScript

function.call in CoffeeScript

本文关键字:CoffeeScript 调用 函数      更新时间:2023-09-26

写以下JavaScript作为CoffeeScript的最短方式是什么?

var obj = {};
(function(){
  this.foo = "bar";
}).call(obj);

我可以这样做:

obj = {}
(->
  @foo = "bar"
).call obj

但是有一种方法可以摆脱函数定义周围的括号吗?这几乎可以工作:

do =>
  @foo = "bar"

…除了胖箭头操作符'=>'会自动将函数绑定到'this'的当前值。当使用胖箭头时,是否有一种方法来指定一个替代的"this"值?

你不能去掉括号,但是你可以用一行来写这个函数。

(-> @foo = 'bar').call obj

你应该接受Dogbert的回答。但如果你真的在寻找写代码的最短方式,答案是

obj.foo = 'bar'

不要过度使用匿名函数

您从一开始就有了答案,但应该添加以下内容:

obj = {}
do (obj) ->
  obj.foo = "bar"

编译成

(function(obj){
  return obj.foo = 'bar';
})(obj);