2012-10-27 30 views
0

,它說,$符號是指jQuery的。我需要幫助瞭解如何?

jQuery(function($){ 
    // Here `$` refers to jQuery 
}); 
+0

試想一下,在源http://code.jquery.com/jquery-1.8.2.js –

+0

的最底部你是什麼意思?如何在幕後完成或如何使用它? – pimvdb

+1

因爲jQuery會給jQuery的作爲參數傳遞給所提供的功能和參數稱爲$,因而是指jQuery的。 – Styxxy

回答

3

當你傳遞一個函數的jQuery這樣的:

jQuery(function() { 
    ... 
}); 

這是相同的使用jQuery的「文件準備」處理程序:

jQuery(document).ready(function() { 
    ... 
}); 

然而傳遞給函數參數實際上是全球jQuery對象本身 - 它只是大多數這樣的處理程序從不使用該參數。因此,真正簽名是這樣的:

jQuery(document).ready(function($) { 
    ... 
}); 

這樣,該函數內$是本地別名全局jQuery對象。變量名可能是任何你想要的,但$jQuery流行的別名,默認全局別名,除非你叫jQuery.noConflict()

這在更詳細的段落「走樣jQuery的命名空間」在http://api.jquery.com/ready/

+0

參宿一,我們可以使用'jQuery的(文件)。就緒(函數(anyname){...});',對不對?這裏anyname = jquery,然後。 – burhan

+0

@burhan是的,這是正確的,根據我的倒數第二段,但僅在該函數_中。 – Alnitak

+0

也就是說,它將jquery對象傳遞給作爲其參數的函數。不是「'這個'」 – burhan

0

這個函數就是jQuery的運行與第一個參數allonymous功能這

所以只是爲了瞭解它使這樣的一個所謂的allonymous功能:

function jQuery(xx) { 
    xx(this); 
} 
+0

沒有,那是錯的 - 它沒有任何關係'this' – Alnitak

+0

這個片段將顯示的行爲,但方式太簡化爲的恐怕任何意義。 – pimvdb

+0

那麼你的兩個都是對的我只是想指出爲什麼$是一個jQuery對象。如果我猜對了,那麼布漢並不知道匿名函數的概念。 – rekire

0

只是一個例子描述顯示它是如何不可能性

function externalLibrary(b) { 
    if(typeof b === 'function') { 
     b(externalLibrary); 
    }else { 
     // other stuff 
    } 

} 

var myFunc = function(aliasOfExternalLibrary) { 
    // here aliasOfExternalLibrary is a reference to externalLibrary 
} 
externalLibrary(myFunc); 

的jQuery do the same(在一個更復雜系統)