相关疑难解决方法(0)

CoffeeScript的私人会员?

有人知道如何在CoffeeScript中创建私有的,非静态的成员吗?目前我正在这样做,它只是使用以下划线开头的公共变量来澄清它不应该在类之外使用:

class Thing extends EventEmitter
  constructor: (@_name) ->

  getName: -> @_name
Run Code Online (Sandbox Code Playgroud)

将变量放在类中使它成为静态成员,但是如何将其设置为非静态?甚至可能没有"花哨"?

oop instance-variables private-members coffeescript

84
推荐指数
3
解决办法
3万
查看次数

为什么coffeescript会生成这样的类?

鉴于以下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)

javascript coffeescript

7
推荐指数
1
解决办法
1251
查看次数