Google chrome extension 有人能给我解释一下咖啡脚本的语法吗?
我正在扩展一个用coffeescript编写的chrome扩展,并且遇到了以下语法:Google chrome extension 有人能给我解释一下咖啡脚本的语法吗?,google-chrome-extension,coffeescript,Google Chrome Extension,Coffeescript,我正在扩展一个用coffeescript编写的chrome扩展,并且遇到了以下语法: Commands = init: -> for command, description of commandDescriptions @addCommand(command, description[0], description[1]) availableCommands: {} keyToCommandRegistry: {} 我只想检查一下这个语法和类之间的区别
Commands =
init: ->
for command, description of commandDescriptions
@addCommand(command, description[0], description[1])
availableCommands: {}
keyToCommandRegistry: {}
我只想检查一下这个语法和类之间的区别(假设是这样的):
只是前者没有原型吗?我认为可以在顶部的命令上调用方法,如Commands.init()
。我正在从事的项目似乎同时使用了两种语法,因此我希望在使用其中一种语法之前,确保我理解每种语法的含义
谢谢。第一个
命令的主要含义是它是一个对象
,而不是函数
,因此无法直接删除它的实例
它的init
方法包括commandDescriptions
(我只能期望它在其他地方声明)和@addCommand
,这两个方法没有附加到Command
对象,这有点令人困惑。如果Command
没有@addCommand
,我希望它是一个。但由于预计会出现未在命令
上声明的方法,因此命令
中的功能组似乎是另一个类
编辑:
为了澄清,对象可以有@变量
。在init
函数中,您可以将availableCommands
或keytocomandregistry
作为@availableCommands
和@keytocomandregistry
引用。但是,在这个特定的示例中,@addCommand
没有在任何地方声明。我希望它被声明为命令
对象声明的一部分,比如:
CommandsA =
init: ->
for command, description of commandDescriptions
@addCommand(command, description[0], description[1])
availableCommands: {}
keyToCommandRegistry: {}
addCommand: (command, descriptionInfo, otherDescriptionInfo) ->
#Does some stuff
如果您可以找到addCommand
的声明位置,这将有助于理解如何使用Command
还需要注意的是:由于命令
是一个对象而不是一个类,因此可用命令
和keyToCommandRegistry
对象可以看作是静态类变量。ok。我只是重读。我以为关于编程语言语法的问题是关于这个主题的?我弄错了吗?我认为这既与程序员常用的软件工具有关
,也与特定的编程问题有关(可能更为细微),问题是无法理解语法结构的含义。此外,我不认为它属于7个类别中的任何一个会认为它离题。有人能帮我理解吗(不想争论,只是想理解。)?原因中的“它缺乏足够的信息来诊断问题”对我来说没有多大意义。不要担心一次势均力敌的投票,有人可能会感到困惑,度过糟糕的一天,或者犯了错误。谢谢@aelr这正是我想要的!因此,只需检查一下,对象可以有可以对其调用的方法(例如init
),但不能有@变量
(这是否意味着对象范围内的this
不引用对象?)。顺便说一句,它不是一个完全混合的东西,但它的行为有点像一个单独的东西:root.Commands=Commands
将它附加到其他东西上。
CommandsA =
init: ->
for command, description of commandDescriptions
@addCommand(command, description[0], description[1])
availableCommands: {}
keyToCommandRegistry: {}
addCommand: (command, descriptionInfo, otherDescriptionInfo) ->
#Does some stuff