jQuery是否立即调用了CoffeeScript中的函数?

jQuery是否立即调用了CoffeeScript中的函数?,jquery,coffeescript,Jquery,Coffeescript,在jQuery页面上,有以下代码: (function ( $ ) { var shade = "#556b2f"; $.fn.greenify = function() { this.css( "color", shade ); return this; }; }( jQuery )); 我如何在CoffeeScript中表示这一点?如果我尝试这样做: do ($) -> x = 'do nothing' 其汇编如下: (function($) {

在jQuery页面上,有以下代码:

(function ( $ ) {
  var shade = "#556b2f";

  $.fn.greenify = function() {
    this.css( "color", shade );
    return this;
  };
}( jQuery ));
我如何在CoffeeScript中表示这一点?如果我尝试这样做:

do ($) ->
  x = 'do nothing'
其汇编如下:

(function($) {
  var x;
  return x = 'do nothing';
})($);

我不知道如何将
jQuery
对象传递给函数。

在CoffeeScript中执行此操作的方式与在JavaScript中执行此操作的方式完全相同。您只需添加一些额外的括号:

(($) ->
  # plugin goes here and uses $
)(jQuery)
这就是JavaScript:

(function($) {
  ...
})(jQuery);
如果您对括号有病态的恐惧,那么您仍然可以使用
do
,但您应该使用默认值设置
$
别名:

do ($ = jQuery) ->
  # plugin code goes here
这也转化为:

(function($) {
  ...
})(jQuery);

这有用吗老实说,我不确定。它保护$alias吗?作为旁白,您可以简单地执行
do(jQuery)->$=jQuery呵呵。病态恐惧。很好的描述。