[英]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.