1

是否有可能将一些传递arguments给 coffeescript-class iife

像这样的 CoffeeScript 类实例:

class App

结果通常是这样的:

App = (function() {

  function App() {}

  return App;

})();

但是,也许有一种方法可以用一些参数填充匿名包装器,如下所示:

App = (function($) {

  function App() {}

  return App;

})(jQuery);

目前我将每个模块包装在一个多余的额外包装器中:

(($) ->
  class App
)(jQuery)

但我觉得这绝对不漂亮(就像通常的咖啡一样)。

4

2 回答 2

1

我认为 elclanrs 的评论是您正在寻找的答案。

在 coffeescriptdo ($) ->中将编译为(function($){ … })($).

do ($ = jQuery) ->会编译为(function($){ … })(jQuery).

真的没有比这更干净的方法了。它是文件顶部的一行,非常清楚您在做什么。

do ($ = jQuery) ->
  class App
于 2013-06-21T17:01:48.833 回答
0

你可以做这样的事情

class A extends GenericClass("some_parameter")

其中 GenericClass 定义为

GenericClass = (params) ->
    return { some: objects }

老实说,我不会这样做,因为它完全使您尝试做的事情变得不透明。也许您可以根据功能/业务价值来解释您尝试做的事情,而不是在 CoffeeScript 语法方面?

于 2013-06-15T10:54:43.890 回答