2013-10-31 153 views
-1

有什麼區別,哪個更好?jQuery函數VS Javascript函數

(function($){ 
    $.random = function(){ 
     alert('random'); 
    }; 
})(jQuery); 

function random() { 
    alert('random'); 
} 

謝謝!

+1

什麼 '好'?第一種是立即調用的JavaScript函數,後者是「僅」JavaScript函數。你想問什麼? –

+5

jQuery是一個JavaScript庫。沒有像jQuery函數那樣的東西。 – xbonez

+2

區別在於'random'是否與'jQuery'相關聯。至於「*更好*」,「隨機」會從該關聯中受益還是取決於該關聯?如果「*是*,」第一。否則,第二。 –

回答

0

此示例:

(function($){ 
    $.random = function(){ 
     alert('random'); 
    }; 
})(jQuery); 

是一樣的:

jQuery.random = function(){ 
    alert('random'); 
}; 

而這個樣本:

function random() { 
    alert('random'); 
} 

是一樣的:

window.random = function() { 
    alert('random'); 
}; 

正如你所看到的,唯一的區別是命名空間(jQuerywindow):

jQuery.random = function() { alert('random'); }; 
window.random = function() { alert('random'); }; 
1

這兩個函數完全相同,所以功能沒有區別。

第一種語法會更好,因爲它不會使用另一個函數膨脹全局名稱空間,而是將該函數添加到jQuery中,但這不是擴展jQuery的正確方法。

2

第一個例子:

  • 不使用jQuery
  • 的任何功能
  • jQuery的依賴
  • 使用多個代碼

「更好」 是相當主觀的,但我可以這個代碼沒有看到這種方法的好處。

+0

我很抱歉,但第三點是錯誤的。 – leaf

+0

好點。我習慣於看到jQuery的可怕的重載'$(function(){})'語法,我誤解了它,這是固定的。 – Quentin