簡體   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