为什么CoffeeScript包装类编译代码

时间:2013-04-21 01:19:27

标签: javascript coffeescript

CoffeScript编译:

class A
  a: 'value'

为:

var A;

A = (function() {
  function A() {}

  A.prototype.a = 'value';

  return A;

})();

与此有何不同:

var A = function A(){};
A.prototype.a = 'value';

我在控制台中测试了代码,第一个返回function A(),而第二个返回"value",但是为了实例化类,要使用class A,{{1适用于这两种情况。

1 个答案:

答案 0 :(得分:0)

没有任何有效的区别,但由于CoffeeScript是一个代码生成器,它可能在不同情况下对变量作用域有其他用途,并且根本没有优化来减少实际上不需要额外的简单情况的代码范围。

我不使用CoffeeScript,但那是我的猜测。