jQuery 类型类结构

发布于 2024-12-11 07:25:45 字数 424 浏览 0 评论 0原文

所以我想知道是否有人可以帮助我理解 jQuery“类”的工作原理。据我所知,它的工作方式就像一个静态类,如下所示:

if(!$) { var $ = new function(){} }

我认为..

现在,让我感到困惑的是,如何使用或不带参数来调用方法,如下所示:

$("a").removeClass("test");
$.get('myhtmlpage.html', myCallBack);

我假设传递该参数只是返回document.getElementById(argument);

但是如何呢?这个论点是如何在事后传递到类中的?另外,这是方法链的一些结果吗?

任何可以帮助我了解正在发生的事情的信息都会很棒!谢谢。

So I was wondering if anyone could help me understand how the jQuery 'class' works. From what I can tell, it works like a static class like such:

if(!$) { var $ = new function(){} }

I think..

Now, what is confusing to me, is how you can call a method both with OR without arguments like such:

$("a").removeClass("test");
$.get('myhtmlpage.html', myCallBack);

I am assuming passing that argument simply returns document.getElementById(argument);

But how? How is this argument passed into the class after the fact like this? also, is this some result of method chaining?

Anything info to help me understand what is going on would be great! Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娜些时光,永不杰束 2024-12-18 07:25:45

我正在使用 jQuery 源代码,因此您也可以查看它。

$ 函数没有显式定义,而是链接到 jQuery 对象:

window.$ = jQuery;

jQuery 对象的定义如下:

jQuery.fn = jQuery.prototype = {
    constructor: jQuery,
    init: function( selector, context, rootjQuery ) {

init: function( 选择器 部分处理 $('foo') 情况。

如果没有给出参数,则使用另一个函数:

get: function( num ) {

I'm working with the jQuery source here, so you can look at it as well.

The $ function isn't explicitly defined, but instead linked to the jQuery object:

window.$ = jQuery;

The jQuery object is defined like so:

jQuery.fn = jQuery.prototype = {
    constructor: jQuery,
    init: function( selector, context, rootjQuery ) {

The init: function( selector part handles $('foo') cases.

If no parameters are given, the another function is used:

get: function( num ) {
平定天下 2024-12-18 07:25:45

JavaScript 中的变量可以包含 $。例如 foo 和 $foo 是不同的变量。自然 $ 是一个有效的对象。

接下来值得注意的是,在 JavaScript 中一切都是类。函数也是一个类,所以你的函数也可能有方法。

$ <-- 这是一个带有方法的函数。

$('a') <-- 这会执行执行某些操作并再次返回 $ 的函数。

$.get() <-- 这会调用该 jQuery 函数的方法。

$('a').get() <-- 这会执行带有参数 a 的函数,该函数再次返回 $,然后您获取它的方法并再次执行它。

当调用 $('a') 时,不会返回完全相同的 $,它会包含有关您使用的选择器的一些额外信息。

我最后要注意的是,当你调用 $(x); 时其中 x 是一个函数,然后将其用作注册文档就绪回调的快捷方式。

Variables in JavaScript can contain $. for example foo and $foo are different variables. Naturally $ is a valid object.

Next thing worth noting is that in JavaScript everything is a class. Function is a class too, so your function might have methods too.

$ <-- this is a function with methods.

$('a') <-- this executes that function which does something and return $ again.

$.get() <-- this calls method of that jQuery function.

$('a').get() <-- this executes function with argument a which returns $ again then you grab it's method and execute that again.

When $('a') is called, not the exact same $ is returned, it would contain some extra information about the selector you used.

My final note is that when you call $(x); where x is a function, then it's used as a shortcut to registering on-document-ready call-back.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文