咖啡脚本、类和函数
Coffeescript, classes and functions
在JavaScript中,我会设置一个这样的类:
var SomeClass = (function()
{
var _this = { };
var privateVar = 'foo'
_this.publicVar = 'bar'
function privateFunction()
{
return privateVar;
}
_this.publicFunction = function()
{
return _this.publicVar;
}
return _this;
})();
这很好,因为我可以通过调用SomeClass.publicFunction()
或_this.publicFunction()
来引用publicFunction
privateFunction
现在在 Coffeescript 中,我正在尝试设置我的类,以便我可以调用类函数,我该怎么做?如何在 coffeescript 中创建一个名为 Foo
的类,并获取类中的一个函数来引用该类中的另一个函数?
我认为这会有所帮助:
class Foo
a: ->
alert 'a invoked'
b: ->
@a()
alert 'b invoked'
new Foo().b()
你的问题令人困惑。
如果你想创建一个类方法,你可以这样做
class Foo
constructor: ->
m1: ->
Foo.classMethod()
m2: ->
@privateMethod()
@m1()
Foo.classMethod = ->
请注意最后一行。 类方法是存在于定义类的函数上的方法。
如果你想从另一个方法调用一个方法,这没什么大不了的。 此示例中的m1
和m2
演示了这一点。 请注意,每个调用的范围都限定为 this
,这是类 Foo 的当前实例。 所以你可以做到
f = new Foo()
f.m2()
这将创建一个新的 Foo 实例,然后在该实例上调用 m2
。 m2
反过来调用类方法classMethod
。
这个看看上面的咖啡脚本编译的javascript。
在
私有方法中调用公共方法
方法 A 是私有的,方法 B 是公共
的阿福类 call_a: -> a.呼叫(本) 乙: -> 警报"B 已调用" a = -> 警报"已调用" @b()obj = 新 Fooobj.call_a()
相关文章:
- 为什么我的控制器没有启动函数.js脚本
- 在Debian中运行包含load()和print()函数的JS脚本
- 无法在java脚本中调用图像的点击事件函数
- AngularJS:如何使用java脚本函数更改跨度的ng-show条件
- 无法将java脚本函数与Panel'绑定;s OnLoad事件
- 从我自己的脚本中包含的Javascript文件中调用一个函数
- 从 java 脚本调用函数时 PHP 中出错
- 如何创建php函数或任何脚本/jquery Javascript,使我能够获取与复选框关联的值并添加它们
- 将javascript函数传递给.php脚本
- 为什么当我需要位于顶部的函数时,在脚本中的某些点上没有定义函数
- 如何将类型和函数传递给JSR-223脚本
- 如何减少数组的脚本中的函数
- Java脚本函数中的PHP(PCRE)验证
- 在HTML JavaScript头部分运行Google脚本函数
- jQuery函数脚本
- JavaScript添加函数脚本 - 有人可以解释一下
- 历史记录 api 状态更改函数脚本在每次发生更改时复制函数调用
- 在.html文件之外执行函数/脚本
- replaceAll函数:脚本太长而无法执行
- 中的回调函数.脚本的移动()