如何从coffeescript中的静态方法访问类属性

时间:2015-10-29 15:07:26

标签: javascript coffeescript

我有这样的代码

class Class
  property: 5

  @run: ->
    console.log @property

Class.run()

我如何在控制台中显示property值,考虑到我可以更改的内容是@run内容?

对应jsFiddle

3 个答案:

答案 0 :(得分:3)

您提供的代码汇编为:

var Class;

Class = (function() {
  function Class() {}

  Class.prototype.property = 5;

  Class.run = function() {
    return console.log(this.property);
  };

  return Class;

})();

Class.run();

您可以看到property附加到Class的原型,而不是类本身。因此,要访问它,您可以使用CoffeeScript中的::作为合成糖来访问类的原型。

Class::property

否则,如果你真的想要一个静态属性(这里不是这种情况),请按照这样的方式声明:

class Class
  @property: 5

答案 1 :(得分:2)

使用Class::property

class Class
    property: 5

    @run: ->
        console.log(Class::property)

Class.run()

答案 2 :(得分:1)

访问类属性:

Class::property