2

我一直在思考 jQuery 在 Javascript 代码中实现的方式。jQuery 和 Prototype 等库默认绑定到别名;对于这些示例,他们使用美元符号$。(下划线适当地使用下划线字符_。)

我明白这是如何工作的。我也了解许多库都提供了 noConflict 模式。

我的问题是,为什么这些库默认使用别名?

从我所见,像这样的别名似乎只让程序员在调用函数时输入更少的字符,这似乎微不足道。(老实说 - 我有点偏见,因为我在输入长变量名时没有问题。)我认为这可能是出于文件大小目的,但随着缩小器的扩散,这似乎是一个有争议的问题(以及过早优化的一种形式)。

另一方面,别名似乎会给使用这些库的人带来 很多 困惑

现在,我并不是真的反对使用别名——我只是想知道为什么它是这些库的默认选项。目前,为了避免使用别名,我们必须明确声明我们不想使用它。关于使用别名进行库调用,我是否缺少特定的好处?我可以很容易想到的唯一优势是,如果您以某种方式编写跨库代码 - 要交换库,您只需交换别名。不过,我认为我从未见过这样做过。

有人知道这背后的原因吗?我,一方面,真的很想知道。

4

2 回答 2

1

“据我所见,像这样的别名似乎只让程序员在调用函数时输入更少的字符,这似乎微不足道。”

这也是设计 VB 的人的想法。“这是什么

for (int i=0; i<10;i+=2){
}

东西!有什么问题:

For i as Integer = 0 To 10 Step 2
Next i 

所以我节省了 13 次击键!那是微不足道的。”

当这是我们所做的一切时,这并非微不足道。天。长。

使用 jQuery Cycle 插件: http: //malsup.github.com/jquery.cycle.all.js。它有400个 $ 实例。如果您使用 jQuery 而不是 $,那将是额外的2000次击键。这就是IDE现在执行parens等自动完成的原因等等。

于 2012-08-27T02:03:28.387 回答
0

一起使用 jQuery 和 Prototype 并不是一个好主意。理想情况下,该站点必须只有 1 个 javascript 框架,并且对其进行大量调用。因此,最好的(默认)选择是为其主要功能使用速记别名。

无论如何,如果您需要在同一页面上同时使用多个库/框架,并且想要避免冲突,则可以使用 noConflict 模式。

于 2012-08-27T02:10:02.153 回答