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