-1

可能重复:
为什么 JavaScript 变量会以美元符号开头?

我不确定 $scope 和 $defer 是什么,但它们似乎可以工作。

function xyz($scope, $defer) {
    xyz = this;
    this.defer = $defer;
    this.scope = $scope;
    this.scope.test = function(re) {
        console.log(this,arguments);
    }
}
4

2 回答 2

7

通常,这些天开发人员命名一个变量$something以标记它是包装框架的对象类型。例如,要缓存一个 jQuery 对象,使用$this = $(this);

话虽如此,美元符号并没有什么特别之处。只是为开发人员提个醒。

一点历史和推理;ECMAScript 3 说:

标识符中的任何位置都允许使用美元符号 ($) 和下划线 (_)。美元符号仅用于机械生成的代码

而 ECMAScript 5 说:

美元符号 ($) 和下划线 (_) 可以在 IdentifierName 中的任何位置使用。

所以当有人说“嘿,你不应该在你的 var 中使用美元符号,因为它是用于机械生成的代码!” 你可以说“Psh,ECMA 5,你好?”

于 2012-05-01T15:20:43.327 回答
5

这些是参数的名称。

UPDATE:$作为 JavaScript 中的标识符是完全有效的(即使是单独使用,由于某些 JS 库,这可能更常见),但它通常不用作这样的标志。我猜代码是由具有过多 Perl 经验的人编写的,或者可能是由主要处理基于 jQuery 的代码的人编写的。

于 2012-05-01T15:17:07.233 回答