1

如标题所述:从 CoffeeScript 编译类时,有没有办法在 JavaScript 中强制使用括号表示法?

一个简单的例子是

咖啡脚本

class test

    myMethod: () ->
        1

没有括号符号的编译 JavaScript

var test;

test = (function() {
  function test() {}

  test.prototype.myMethod = function() {
    return 1;
  };

  return test;

})();

用括号表示法编译的 JavaScript

var test;

test = (function() {
  function test() {}

  test.prototype['myMethod'] = function() {
    return 1;
  };

  return test;

})();

请注意,在第二个输出中,该方法myMethod()是使用括号表示法分配的。

我需要这个,以便我可以通过 Google Closure Compiler 运行输出并仍然保留我的方法的名称,这需要括号表示法,否则名称也会被缩小。

4

1 回答 1

1

正如我在js2coffee上看到的那样,实现这一目标的最佳方法是:

class test
  'method': ->
    console.log 'this is a test method'

你会得到这个js输出:

var Test;

Test = (function() {

  function Test() {}

  Test.prototype['method'] = function() {
    return console.log('this is a test method');
  };

  return Test;

})();

顺便说一句,我建议使用Browserify进行缩小/丑化。

于 2013-08-27T09:37:37.213 回答