如果我只是把这个'这个'在JavaScript的开头,它不在任何函数中。这个'这个'与'文件'具有相同的含义或者它意味着窗口?
示例:
$(this).ajaxComplete(handler);
在这种情况下,我是否将处理程序附加到窗口或文档或其他内容?
答案 0 :(得分:4)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
全局上下文中的 this
仅引用全局window
本身而不是文档。上面的链接有一个很好的例子:
console.log(this.document === document); // true
// In web browsers, the window object is also the global object:
console.log(this === window); // true
this.a = 37;
console.log(window.a); // 37
我还没有在所有浏览器中对此进行测试,但在Firefox和Chrome中似乎都是如此。
答案 1 :(得分:0)
所以这真的取决于这段代码的位置。它在$(document).ready()或$(window).load()中吗?如果你就在里面:
$(function(){ });
那么这只是$(document).ready()的简写。所以你会指的是这份文件。看看:http://learn.jquery.com/using-jquery-core/document-ready/
此外,$(this)表示您指的是当前对象。
答案 2 :(得分:0)
如果这是脚本中的唯一行,则在全局执行上下文中评估代码。让我们看看规范说的内容:
10.4.1.1 Initial Global Execution Context
执行以下步骤以初始化ECMAScript代码 C 的全局执行上下文:
- 将VariableEnvironment设置为the Global Environment。
- 将LexicalEnvironment设置为the Global Environment。
- 将ThisBinding设置为全局对象。
醇>
ThisBinding
是this
结算的值。因此,在全局上下文中,this
引用全局对象,即浏览器中的window
。
有关this
的更多(不太正式)的信息,请查看MDN documentation。