2010-07-01 37 views

回答

3

使用$(this)調用至少兩個(也可能多於兩個)函數並在您每次使用它時分配一個對象(消耗最終必須回收的內存)。如果你只是要重複使用相同的東西,那麼這就是所有額外的工作。我建議調用它一次,然後緩存結果(例如,在函數中),而不是有十幾行$(this).foo();$(this).bar();

$是爲jQuery函數的別名,就像這樣:

var jQuery = function(selector, context) { 
    // The jQuery object is actually just the init constructor 'enhanced' 
    return new jQuery.fn.init(selector, context); 
} 

正如你可以看到,它創建了一個對象,調用構造函數jQuery.fn.init函數然後必須弄清楚它在做什麼,因爲jQuery使用jQuery函數來處理18個不同的事情。我並不是說它不會很快做到,但爲什麼要做所有額外的工作。 :-)

編輯:在你傳遞一個DOM元素進去(這通常是什麼$(this)正在做)的情況下,jQuery.fn.init不作任何進一步的函數調用。所以「只是」兩個加上分配。

0

$函數將讓jQuery對象的新實例(或檢查所有現有的,我不知道現在的id怎麼獨一無二的作品),但它可以在一個循環中的巨大的開銷/每個功能

所以在這些情況下,答案是肯定的,在其他情況下,答案可能並不重要。

不,絕對不只是關於角色。