繁体   English   中英

var $ = this.jQuery无法理解

[英]var $ = this.jQuery cannot understand

(function () {
    var $ = this.jQuery;

    this.myExample = function () {};
}());

你能告诉我这条线是什么意思吗:

var $ = this.jQuery;

我是javascript的新手

因为它是一个IIFEthis是指函数范围内的窗口对象(因为它可能不使用严格模式),所以我们创建一个名为$的局部变量,它引用全局jQuery变量以便于访问。

但它可以简化为

(function ($) {
    this.myExample = function () {};
}(jQuery));

var $ = this.jQuery; 意思是$ as this.jQuery; (function () {}()); 范围。

它是一个变量,你可以说$将具有this.jQuery的值。

var $ = this.jQuery;

var是变量的缩写,$是该变量的名称,它的值在右侧。

那一行是将$映射到this.jQuery。 基本上当调用使用this.jQuery对象的函数时,可以使用$代替。例如,你可以使用$ .somefunction()而不是this.jQuery.somefunction()

包含这两行的自执行函数创建范围。 “这”将是文件。 如果加载了jQuery,那么就有this.jQuery,所以$成为了这个文档的jQuery。

在JavaScript中,每个函数被调用,可以与被访问的对象在this 什么this是默认值取决于函数的调用方式,和window

obj1.func(); // "this" inside "func" will be "obj1"
func.call(obj2); // "this" inside "func" will be "obj2"
func(); // "this" will default to "window"

在您的情况下,您正在使用第三种方式: (function(){...})()调用函数“unbound”, this将默认为全局window对象。

var $ = this.jQuery;

现在将window.jQuery的值绑定到变量名$ ,这恰好是JavaScript中的有效标识符名。 由于jQuery库在全局函数window.jQuery提供了它的所有功能,因此这是使用较短名称$访问它的便捷方式:

$("a").click();

要在JavaScript中进行this试验,请在浏览器的JavaScript控制台中尝试以下操作:

function alertThis() { alert(this); }
var obj = {method: alertThis};

alertThis(); // will show something similar to [object Window], as "this" is "window"
alertThis.call("Foobar") // will show "Foobar"
obj.method(); // will show something similar to [object Object], as "this" is "obj"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM