Coffeescript 咖啡脚本中的字段?
我想要的是Coffeescript 咖啡脚本中的字段?,coffeescript,Coffeescript,我想要的是别名的用法 _别名的用法:=> @函数别名 让它表现出同样的行为。i、 我想要一个功能性更强的语法。我尝试了多种组合,但都没有成功。事实上,我必须评估我的功能,以获得里面的好东西困扰着我 一个应用程序将取代此应用程序: class @A A_Function_Alias: => @my_function my_function: => usage_of_alias: => @A_Function_Alias.call() 作为eve
别名的用法
_别名的用法:=>
@函数别名
让它表现出同样的行为。i、 我想要一个功能性更强的语法。我尝试了多种组合,但都没有成功。事实上,我必须评估我的功能,以获得里面的好东西困扰着我
一个应用程序将取代此应用程序:
class @A
A_Function_Alias: => @my_function
my_function: =>
usage_of_alias: =>
@A_Function_Alias.call()
作为event.call().hi()
我可以有一些其他声明,允许我以event.hi()的形式访问事件
行为更像字段而不是属性的东西 我想你想要这个:
event: => new Event(@my_function)
计算类时,@
是类构造函数对象,即类对象本身。而::
操作符允许您深入原型。因此类主体中的@::foo
编译为MyClass.prototype.foo
因此,这首先是创建一个名为my_function
的普通实例方法,该方法在a.prototype.my_function
上定义。然后我们创建了一个名为a_Function\u Alias
的新实例方法,并直接从我们刚刚创建的类对象原型中分配函数。现在my\u function
和A\u function\u Alias
都指向完全相同的函数对象
但作为一个更明智的选择,我是否可以建议一种模式,定义类可以使用的私有内部函数,然后更直接地分配它,而无需原型访问
class @A
my_function: => alert 'my function!'
A_Function_Alias: @::my_function
usage_of_alias: =>
@A_Function_Alias()
# some other code...
我不太清楚我是否理解你想要实现的目标。更确切地说,为什么,如果你能发布更多的代码,也许一些更具体的领域,我相信我们可以帮助解决你的问题。您不必使用eval
,这是肯定的。别名的用法:@A\u函数\u别名
是您想要的吗?现在还不清楚你到底想要什么。我只是不想使用.call()。这样做的意义纯粹是装腔作势。似乎绑定函数不能指向其他绑定函数,除非它们本身是绑定函数。我做了一些编辑,可能会澄清这个问题。这看起来非常好,谢谢。我理解你关于另一种选择的建议。我需要一个事件的名称空间,以便可以使用jQuery1.7的on和off api。因为我在CoffeScript中没有将方法名用作名称空间的反射,所以我正在为我的事件创建一个包装器。它看起来是这样的:event:=>newevent(“Class.method”,@method)
我想通过将event而不是event.call()传入我的视图来绑定事件。我也不想内联我的事件创建,这样在不使用EventFactory或实现event.equals().Ahh的情况下测试就更容易了。这种方法存在一个约束性问题。我希望很快会有更多的信息。好吧,这都是因为我错过了一个require语句,它让我经历了这整个考验。我的最终解决方案是在构造函数中分配字段。这删除了时髦的语法。
class @A
# Only code inside this class has access to this local function
innerFunc = -> alert 'my function!'
# Assign the inner funciton to any instance methods we want.
my_function: innerFunc
A_Function_Alias: innerFunc
usage_of_alias: =>
@A_Function_Alias()
# or
@my_function()
# or
innerFunc()
# they all do the same thing