Javascript Coffeescript、类和函数

Javascript Coffeescript、类和函数,javascript,coffeescript,Javascript,Coffeescript,在JavaScript中,我设置了一个类,如: var SomeClass = (function() { var _this = { }; var privateVar = 'foo' _this.publicVar = 'bar' function privateFunction() { return privateVar; } _this.publicFunction = function() {

在JavaScript中,我设置了一个类,如:

var SomeClass = (function()
{
    var _this   = { };
    var privateVar = 'foo'

    _this.publicVar = 'bar'

    function privateFunction()
    {
        return privateVar;
    }

    _this.publicFunction = function()
    {
        return _this.publicVar;
    }

    return _this;
})();
这很好,因为在
privateFunction
中,我可以通过调用
SomeClass.publicFunction()
\u This.publicFunction()


现在,在Coffeescript中,我试图设置我的类,以便调用类函数,我该怎么做?如何在coffeescript中创建一个名为
Foo
的类,并在该类中获取一个函数来引用该类中的另一个函数?

您的问题令人困惑

如果您想创建一个类方法,您可以像这样做

class Foo
  constructor: ->        

  m1: ->
    Foo.classMethod()

  m2: ->
    @privateMethod()
    @m1()

Foo.classMethod = ->
注意最后一行。类方法是存在于定义类的函数上的方法

如果您想从另一个方法调用一个方法,那没什么大不了的<代码>m1和
m2
在本例中演示了这一点。请注意,每个调用的作用域都是this,它是类Foo的当前实例。所以你可以

f = new Foo()
f.m2()
这将创建一个新的Foo实例,然后在该实例上调用
m2
m2
依次调用类方法
classMethod

查看上面的coffeescript编译到的javascript。

我认为这会有所帮助:


在私有方法内调用公共方法

方法a是私有的,方法b是公共的

福班 呼叫a:-> a、 打电话(这个) b:-> 警报“b已调用” a=-> 警报“a已调用” @b() obj=新Foo 对象调用a()
那么“私有”函数呢?更新了——在构造函数中执行。查看底部的链接,以便查看js@AhmedNuaman,见private@AhmedNuaman:这一个可能也有帮助:那么“私有”函数呢?

class Foo
  a: ->
    alert 'a invoked'
  b: ->
    @a()
    alert 'b invoked'
new Foo().b()