javascript – 我可以使用CoffeeScript中的类使’new’关键字可选吗?

JavaScript中,您可以使用一个小技巧来使新关键字可选:

function Frob(args) {
  if (!(this instanceof Frob)) {
    return new Frob(args);
  }

  // Normal initialization logic
}

这样,您可以使用或不使用new关键字来实例化Frob:

new Frob('foo'); // a Frob instance
Frob('bar');     // also a Frob instance

有没有办法在CoffeeScript中使用class关键字执行此操作?

解决方法:

只需定义一个构造函数:

class Frob
  constructor: (args) ->
    return new Frob(args) unless this instanceof Frob
    ### Rest of your init code ###

Output

var Frob;

Frob = (function() {
  function Frob(args) {
    if (!(this instanceof Frob)) {
      return new Frob(args);
    }
  }

  return Frob;

})();
上一篇:javascript – Node.js:读取URL中传递的参数


下一篇:javascript – 如何让Turbolinks停止干扰我的JS?