JavaScript Learning

  • 656
  • 0
  • 2014-05-09

JavaScript Learning

紀錄一些自己以前沒注意到的...

參考來源:<jQuery 實戰手冊>

 

以下三種寫法都是一樣的:

   1: function hello(){ alert('Hi world'); }
   2:  
   3: hello=function(){ alert('Hi world'); }
   4:  
   5: window.hello = function(){ alert('Hi world'); }

 

選擇性參數,若function 定義了4個參數

例如:

   1: function doSomething(arg1, arg2, arg3, arg4){ //... }

完整參數呼叫就不介紹了,反正就4個參數都給就好。

這邊要介紹的是選擇性參數,與書中介紹的Options hash用法。

選擇性參數:這方式只能照順序給參數,給2個參數,預設就是前2個參數有資料,後兩個是undefined。

   1: //只傳入第一個參數時,其他參數預設就被當作undefined
   2: var result = doSomething("val1");

 

Options hash (選項雜湊):若想傳入指定的參數,如只想傳第一、第四個參數,作法如下:

   1: var result = doSomething("val1",{ arg4: "val4" });

這種寫法呼叫時很好用,但...寫函數功能時就需要額外判斷參數是否為null了。

 

 

自訂plugin 擴充jquery

   1: (function($){
   2:    //
   3:    //plugin 定義
   4:    //
   5: })(jQuery);

 

$.doSomething 跟$.fn.doSomething 傻傻分不清楚

   1: (function($){
   2:     //下面這兩種寫法有甚麼差別?
   3:     $.fn.myMethod1=function(){
   4:         //write some code
   5:     }
   6:  
   7:     $.myMethod2=function(){
   8:         //write some code
   9:     }
  10: })(jQuery);

書裡面這麼說:$.fn只是jQuery建構函式的prototype屬性的別名。

而$.myMethod2=… 用來建立公用函式 (utility function):定義在jQuery名稱($)上作為屬性的函式。

 

這兩種用法也不同:

   1: //$.fn.myMethod1
   2: $('#work').myMethod1();
   3:  
   4: //$.myMethod2()
   5: $.myMethod2();
   6:  

 

此外,個人覺得整理的最好的文章是這篇:

http://blog.joomla.org.tw/javascript/54-general/81-javascript-functon-basic.html