我们可以将参数传递给coffeescript级吗?

时间:2013-06-15 10:39:50

标签: javascript coffeescript arguments anonymous-function iife

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

像这样的CoffeeScript类实例:

class App

结果通常在此:

App = (function() {

  function App() {}

  return App;

})();

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

App = (function($) {

  function App() {}

  return App;

})(jQuery);

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

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

但我发现这绝对不是很美(通常是coffescript)。

2 个答案:

答案 0 :(得分:1)

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

在coffeescript中do ($) ->将编译为(function($){ … })($)

do ($ = jQuery) ->将汇编为(function($){ … })(jQuery)

实际上没有比这更清洁的方法了。它位于文件顶部的一行,非常清楚您正在做什么。

do ($ = jQuery) ->
  class App

答案 1 :(得分:0)

你可以做这样的事情

class A extends GenericClass("some_parameter")

其中GenericClass定义为

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

老实说,我不会这样做,因为它完全使你不知所措。 也许您可以解释一下您在功能/业务价值方面的尝试,而不是CoffeeScript语法方面的内容?