CoffeeScript - 用AMD或窗口对象加载lib(经典方式)

时间:2014-05-13 13:43:12

标签: javascript coffeescript amd

do ((context, lib)->
  console.log context
  console.log lib

)(this, (context, lib)->
  console.log context
  lib_ = context.lib

  lib.version = '0.1'
  return lib
)

我希望能够使用amd或lib对象加载window。 我设法得到想要的结果,但由于最后一组的挑剔而导致错误() 生成的JavaScript代码:

(function(context, lib) {
  console.log(context);
  return console.log(lib);

})(this, function(context, lib) {
  console.log(context);

  var lib_ = context.lib;
  lib.version = '0.1';
  return lib;

})(); // this last set of paranteses cause an error 

我尝试编写CoffeeScript以这种方式生成JS :(没有成功)

(function(context, lib) {
  console.log(context);
  return console.log(lib);

}(this, function(context, lib) {
  console.log(context);

  var lib_ = context.lib;
  lib.version = '0.1';
  return lib;
}));

据我所知,在CoffeeScript中编写JS代码可以绕过这个问题,但我希望这是最后一个选项。

1 个答案:

答案 0 :(得分:1)

如果从第一行删除do,则输出如下所示:

(function(context, lib) {
  console.log(context);
  return console.log(lib);
})(this, function(context, lib) {
  var lib_;
  console.log(context);
  lib_ = context.lib;
  lib.version = '0.1';
  return lib;
});

所以, CS

((context, lib)->
  console.log context
  console.log lib

)(this, (context, lib)->
  console.log context
  lib_ = context.lib

  lib.version = '0.1'
  return lib
)