是什麼這三種形式之間的差別:
this
$this
$(this)
是什麼這三種形式之間的差別:
this
$this
$(this)
在典型使用你通常會看到他們像這樣(的$this
使用可能會有所不同):
this
- 指的是你目前的處理程序的DOM元素,但是這可能在其他情況下完全是另一個對象,但它始終是上下文。$this
- 通常由var $this = $(this)
創建一個緩存版本的jQuery包裝版本以提高效率(或在多數情況下關閉$(this)
以獲得相同的結果)。$(this)
- 元素的jQuery包裝版本,因此您可以訪問all its methods(具體在$.fn
中的版本)。this
是在其上方法被調用的對象$this
是沒有特殊含義$(this)
名爲不佳變量調用不佳命名功能$
與this
作爲其唯一參數lol。短而乾淨。我喜歡+1。 – 2010-10-08 10:16:06
他們的變量名稱被選中...很差。 – PaulJWilliams 2010-10-08 10:17:01
我不同意你的#2,它是一個完全有效的名稱,它是用來做什麼的,它是'this'的jquery包裝版本......你會怎麼稱呼它?因爲jQuery對象的'$ var'是一個廣泛使用的約定?對於#3,你建議什麼替代品?有幾個圖書館選擇了這個(jQuery,MooTools,Prototype,Microsoft的....)。 – 2010-10-08 10:19:46
在jQuery的上下文中,'this'是調用方法的對象。 '$ this'確實是一個沒有特殊含義的變量名稱不多的變量。 '$(this)'將'this'傳遞給jQuery,只要'this'是一個DOM對象,jQuery就會返回一個與'this'關聯的jQuery對象。
您的問題會更好地服務於更多的上下文。
但是我假設你在元素事件回調的上下文中詢問變量(例如click
)。
this
是處理程序的上下文中(通常的DOM元素,在DOM事件處理程序的情況下)$this
通常用來存儲$(this)
$(this)
結果返回jQuery對象那包裝this
- 請參閱jQuery documentation瞭解更多信息。擴大在什麼大衛說:
$this
通常用於有this
對象的副本在當前範圍內。例如對於var $this = this;
,您可以在當前範圍內的任意位置使用變量$this
,並始終能夠引用該對象,否則該對象只會簡單地用this
引用。我個人不喜歡的$this
命名規則,更喜歡像var parentScope
$(this)
是像jQuery或PrototypeJs一些框架使用的功能(var $ = function(){}
)。使用它的原因是因爲$
是很容易的類型,而不是someLongFunctionName
因爲它是在代碼通常被稱爲許多時候,它更容易有它是儘可能短
在jQuery的事件處理:
this
- 是您分配事件處理程序$(this)
DOM元素 - 距離Tha創建一個jQuery對象噸元件$this
- 典型地,可變保持的$(this)
結果更一般地:
此函數內部是指物體或基元的函數被調用上。當一個函數被用作構造函數時,它指向正在構建的新對象。在任何函數之外,this
引用全局對象(window
處於非嚴格模式)。
$ this是一個變量名稱。在JavaScript中,變量名稱可以以$
開頭。有些人喜歡用它作爲前綴變量包含jQuery的對象:
var body = document.body; // no prefix for a plain DOM object
var $body = jQuery('body'); // prefix for the same object wrapped in jQuery
var $this = $(this);
$(本)是一個函數調用,其中$
是一個函數名,this
是它的參數:
var $ = alert;
$(this); // [object Window]
$
本身沒有任何特殊的含義。但jQuery將$()
函數定義爲jQuery()
的簡寫。根據它的參數,這個函數可以做many different things。
在jQuery出名之前,我記得看到'$ this'被用來引用父範圍對象,有點像'var that'。不過,我看到jQuery fenomena如何影響它的含義。 – 2010-10-08 10:30:11
這個答案假設我們處在一個事件處理程序中:Alisey的回答更一般 – meouw 2010-10-08 11:49:24
@meouw - 我不認爲它假設,我立即告誡它:「但這可能是完全在其他情況下的另一個對象。 *當你看到這一點時,大部分時間都是在那裏(我們主要是事件驅動),但不是唯一的地方。 – 2010-10-08 11:52:58