有人知道如何在CoffeeScript中创建私有的,非静态的成员吗?目前我正在这样做,它只是使用以下划线开头的公共变量来澄清它不应该在类之外使用:
class Thing extends EventEmitter
constructor: (@_name) ->
getName: -> @_name
Run Code Online (Sandbox Code Playgroud)
将变量放在类中使它成为静态成员,但是如何将其设置为非静态?甚至可能没有"花哨"?
鉴于以下coffeescript代码:
class Animal
constructor: (@name) ->
speak: (things) -> "My name is #{@name} and I like #{things}"
Run Code Online (Sandbox Code Playgroud)
这是生成的:
var Animal = (function() {
function Animal(name) {
this.name = name;
}
Animal.prototype.speak = function(things) {
return "My name is " + this.name + " and I like " + things;
};
return Animal;
})();
Run Code Online (Sandbox Code Playgroud)
但为什么不是这个更惯用的代码生成?
var Animal = function Animal(name) {
this.name = name;
};
Animal.prototype.speak = function(things) {
return "My name is " + this.name + " and I like …Run Code Online (Sandbox Code Playgroud)