繁体   English   中英

JavaScript中的“这”是什么意思?

[英]What 'this' means in javascript?

如果我只是在JavaScript的开头放置一个“ this”,则它不在任何函数中。 “ this”与“ document”具有相同的含义吗? 还是窗户?

例:

$(this).ajaxComplete(handler);

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

https://developer.mozilla.org/zh-CN/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中似乎都是如此。

因此,这实际上取决于此代码在哪里。 是在$(document).ready()还是$(window).load()中? 如果您只是在里面:

$(function(){ });

这只是$(document).ready()的简写。 因此,您将参考该文档。 出: http : //learn.jquery.com/using-jquery-core/document-ready/

$(this)也表示您正在引用当前对象。

如果这是脚本中的唯一一行,那么将在全局执行上下文中评估代码。 让我们看看规范对此有何评论:

10.4.1.1初始全局执行上下文

执行以下步骤来初始化ECMAScript代码C的全局执行上下文:

  1. VariableEnvironment设置为全局环境
  2. 词汇环境设置为全球环境
  3. ThisBinding设置为全局对象。

ThisBindingthis解析的值。 因此,在全局上下文中, this是指全局对象,它是浏览器中的window

有关更多的(不太正式的)信息this ,看看在MDN文档

暂无
暂无

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

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