[英]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)也表示您正在引用当前对象。
如果这是脚本中的唯一一行,那么将在全局执行上下文中评估代码。 让我们看看规范对此有何评论:
执行以下步骤来初始化ECMAScript代码C的全局执行上下文:
- 将VariableEnvironment设置为全局环境 。
- 将词汇环境设置为全球环境 。
- 将ThisBinding设置为全局对象。
ThisBinding
是this
解析的值。 因此,在全局上下文中, this
是指全局对象,它是浏览器中的window
。
有关更多的(不太正式的)信息this
,看看在MDN文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.