Javascript Coffeescript、类和函数
在JavaScript中,我设置了一个类,如: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() {
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()