【问题标题】:Does the '@' symbol have special meaning in Javascript, Coffeescript or Jquery?'@' 符号在 Javascript、Coffeescript 或 Jquery 中是否有特殊含义?
【发布时间】:2023-03-27 13:35:01
【问题描述】:

我有一些看起来像的代码

self = @

然后它使用@someMethodNameself.someMethodName

@ 有什么特殊含义吗?

【问题讨论】:

  • jquery 中是否存在该符号?
  • sooo.....它是Javascript文件还是coffeescript文件?
  • @SDC 这是一个咖啡脚本文件,但如果 Javascript 已经定义了它,大概你可以使用它。

标签: javascript jquery coffeescript grammar


【解决方案1】:

@ 不是 javascript 标识符的有效字符。标识符只能包含$_、数字和字母。

在咖啡脚本中,@ means this

CoffeeScript 有一些与 this 关键字相关的不错的功能。 首先,CoffeeScript 使用 @ 符号作为这个的简写。 例如,@foo 等价于 this.foo。其次,如果你使用@ 函数参数中的符号,CoffeeScript 将 自动将这些值分配为对象的属性。

编辑:就 jQuery 而言,与 javascript 相同的标识符规则适用,因为 jQuery 只是 javascript。对于 jQuery 中 @ 的其他用法,请参阅 this questionthe docs

【讨论】:

  • 值得补充的是,@foo 在 CoffeeScript 中表示 this.foo
  • 可能还值得注意的是,=> 在您尝试阅读别人的 CoffeeScript 时非常令人困惑,恕我直言。
【解决方案2】:

@ 是咖啡脚本中this 的快捷方式

所以

self = @

是咖啡脚本:

var self = this;

【讨论】:

  • 现在为了安全起见应该是const self = @ ;)
【解决方案3】:

自从CoffeeScript 的设计已经过去了几年,并不是CoffeeScript 中提出的所有内容都被写入了ECMA 脚本。建议将其用于decorators,而不是用作this 的快捷方式。

【讨论】:

    猜你喜欢
    • 2014-07-29
    • 1970-01-01
    • 2013-04-18
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 2014-08-06
    相关资源
    最近更新 更多