Javascript 为什么jQuery语法如此奇怪-它是如何被解析的?
我试图理解jQuery,但语法对我来说太奇怪了,这阻碍了我的理解。我甚至不明白常规JavaScript解析器是如何解析它的!我可以阅读示例代码,我会从附带的材料中了解它在做什么,但我不了解如何做 我知道,Javascript 为什么jQuery语法如此奇怪-它是如何被解析的?,javascript,jquery,Javascript,Jquery,我试图理解jQuery,但语法对我来说太奇怪了,这阻碍了我的理解。我甚至不明白常规JavaScript解析器是如何解析它的!我可以阅读示例代码,我会从附带的材料中了解它在做什么,但我不了解如何做 我知道,$只是jQuery的别名,但这并不能回答问题。以经典的jQuery函数为例,该函数用于将事情延迟到页面完全加载: $(document).ready(function() { ... }); 或者jQuery选择器,用于选择DOM中的所有p元素并应用CSS规则: $('p').css('c
$
只是jQuery的别名,但这并不能回答问题。以经典的jQuery函数为例,该函数用于将事情延迟到页面完全加载:
$(document).ready(function() {
...
});
或者jQuery选择器,用于选择DOM中的所有p
元素并应用CSS规则:
$('p').css('color', 'blue');
所以。。。不知何故,document
和'p'
被识别为键,并与适当的值关联,对吗?但这似乎不可能是真的,因为那时jQuery必须预先计算它将返回的任何可能需要的键的结果,包括jQuery可能不知道的元素ID!那么它到底是如何工作的呢
(编辑以修复描述代码时的错误)答案比您想象的要简单。
$
确实是jQuery库的别名。。。它作为一个函数实现。当您看到如下代码时:
$(document).ready(function() {
...
});
您看到的是:
$
)文档
ready
方法,被调用$.getJSON('http://www.foo.com/search?q=....
在我们前面的代码中,
$
是我们正在调用的函数。在这段代码中,$
是我们正在调用的函数getJSON
所在的对象。是的,正如常见问题解答中明确鼓励的那样。问题基本上是我今天上午10点会怎么问这个问题;答案是我现在知道的,我偶然发现了一个资源,它碰巧提到了一个关键事实,即jQuery库是作为一个单一函数实现的。这就是为什么,毕竟,当你在屏幕上提问时,有一个很大的复选框问你是否想回答自己的问题,并让您同时撰写问题和答案。再一次,这是明确鼓励的。对不起,如果我看起来是防御性的——从这个和其他网站的Meta来看,似乎有一些用户仍然相信回答你自己的问题某种程度上是“作弊”,而事实并非如此。至于为什么它写得好像是两个不同的人,这是迄今为止我发现的最好的方式,让问题和答案变得清晰,把它写在理解我之前和理解我之后的交流中。他们都是我,但这似乎与问题或答案无关,所以我不提。在第二个示例中,它实际上是对选择器中的元素应用CSS规则,而不是设置类。(.addClass()
)。+1是一个非常好的问题。哦,你说得对。您认为我应该更新问题以修复该错误吗?是的,我认为这样做是可以的。:)但是如果您没有意识到$是一个函数,那么您可能知道jQuery必须是常规Javascript,但不知道解析器是如何看待它的。不使用paren访问对象键的推理无法解释访问的内容和方式。如果您不知道它是一个函数,您将无法在StackOverflow上搜索“jQuery的$a函数和对象是什么样子的?”。