这个'这个'在javascript中意味着什么?

时间:2015-03-04 21:29:46

标签: javascript jquery

如果我只是把这个'这个'在JavaScript的开头,它不在任何函数中。这个'这个'与'文件'具有相同的含义或者它意味着窗口?

示例:

$(this).ajaxComplete(handler);

在这种情况下,我是否将处理程序附加到窗口或文档或其他内容?

3 个答案:

答案 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 的全局执行上下文:

     
      
  1. VariableEnvironment设置为the Global Environment
  2.   
  3. LexicalEnvironment设置为the Global Environment
  4.   
  5. ThisBinding设置为全局对象。
  6.   

ThisBindingthis结算的值。因此,在全局上下文中,this引用全局对象,即浏览器中的window

有关this的更多(不太正式)的信息,请查看MDN documentation