在JavaScript中,您可以使用一个小技巧使new
关键字成为可选项:
function Frob(args) {
if (!(this instanceof Frob)) {
return new Frob(args);
}
// Normal initialization logic
}
这样,您可以使用Frob
关键字实例化new
:
new Frob('foo'); // a Frob instance
Frob('bar'); // also a Frob instance
有没有办法在CoffeeScript中使用class
关键字执行此操作?
答案 0 :(得分:5)
只需定义一个构造函数:
class Frob
constructor: (args) ->
return new Frob(args) unless this instanceof Frob
### Rest of your init code ###
var Frob;
Frob = (function() {
function Frob(args) {
if (!(this instanceof Frob)) {
return new Frob(args);
}
}
return Frob;
})();