代码中“t”的含义是什么,t(窗口)是什么意思?

时间:2014-07-27 20:03:18

标签: javascript jquery

我正在尝试通过查看某些网站的源代码来学习jquery / javascript。我对那里使用的语法有点不确定:

!function(t) {
    "use strict";

        function e() {
        var e = parseInt(t(window).scrollTop()),
            n = 10;
        e > n ? a.addClass("new-class") : (a.removeClass("new-class"), t(".sclass").removeClass("fclass"))
    }
    //...more codes...
}(jQuery),

我只是不知道那里到底是什么意思。是“这个”还是只是任何事件对象? t(窗口)是什么意思?我以为它应该像t.window?因为t不是函数。

谢谢! 萨尔德奇

5 个答案:

答案 0 :(得分:3)

t是对该函数范围内的jQuery对象的引用。注意函数是如何调用的:

!function (t) {
    // "t" is the jQuery object
}(jQuery);

定义函数,然后使用参数jQuery立即调用。因此,在调用函数时,传递的参数将存储在变量t中。你可以说出任何名字,真的:

!function (foo) {
    // "foo" is the jQuery object
}(jQuery);

答案 1 :(得分:0)

该函数是内联定义的,因此它没有名称,并且使用param jQuery调用immediatley。 “t”是内联函数的形式参数,它通过具体参数“jQuery”解析。

很快,变量t引用jQuery对象(或任何jQuery变量保存)。

答案 2 :(得分:0)

这相当于:

function x(t) {
    //code in here
}

x(jQuery);

因此,tjQuery函数中的本地引用。

并且, t(window)相当于jQuery(window) ...并且扩展名为$(window)

答案 3 :(得分:0)

将此代码插入函数e()

console.log(t === jQuery);

您将在该函数中断言t确实是jQuery别名。

答案 4 :(得分:0)

如上所述,在这种情况下,t等于jquery对象。 t(window)表示用jquery对象包装window对象,所以在包装之后,我可以在它上面调用jquery方法。我确定你已经熟悉了jquery的$(选择器)方法,它做了同样的事情(足够公平)。

因此,$('#product')应该使用id " product" 获取DOM元素并将其包装在jquery对象中。

示例

var myProduct = document.querySelector('#product');
myProduct.attr('id'); // error, myProduct doesn't have method attr() because it is not a jquery "instance"
$(myProduct).attr(id); // product, we wrapped the item in a jquery object

由于jquery在您的示例中被命名为 t ,因此t(window)将窗口对象包装在jquery中。窗口对象通常没有定义scrollTop()方法。