當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
生活随笔
收集整理的這篇文章主要介紹了
Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
計劃按例如以下順序完畢這篇筆記:
Java程序猿的JavaScript學習筆記(1——理念) Java程序猿的JavaScript學習筆記(2——屬性復制和繼承) Java程序猿的JavaScript學習筆記(3——this/call/apply) Java程序猿的JavaScript學習筆記(4——this/閉包/getter/setter) Java程序猿的JavaScript學習筆記(5——prototype) Java程序猿的JavaScript學習筆記(6——面向對象模擬) Java程序猿的JavaScript學習筆記(7——jQuery基本機制) Java程序猿的JavaScript學習筆記(8——jQuery選擇器) Java程序猿的JavaScript學習筆記(9——jQuery工具方法) Java程序猿的JavaScript學習筆記(10——jQuery-在“類”層面擴展) Java程序猿的JavaScript學習筆記(11——jQuery-在“對象”層面擴展) Java程序猿的JavaScript學習筆記(12——jQuery-擴展選擇器) Java程序猿的JavaScript學習筆記(13——jQuery UI) Java程序猿的JavaScript學習筆記(14——擴展jQuery UI)
這是筆記的第10篇,我們考慮怎樣從有用角度,從“類”的角度對家Query進行擴展。
$.util.parseDate
$.util.parseDecimal
$.page.event.init
jQuery.extend()支持下面幾種函數簽名:
jQuery.extend(obj);
jQuery.extend(isDeep,obj);
jQuery.extend(target,src1,src2,...);
jQuery.extend(isDeep,target,src1,src2,...);
我們能夠extend源碼的基礎上改動,并覆蓋原來的extend,這樣改動一個可能被廣泛使用的函數,改動了其它人對輸入參數的預期,是不合適的,可能會誤導其它人。輸入了錯誤的參數,帶來錯誤隱患。
我們又一次定義一個方法。例如以下:
jQuery.extend({ns_extend : function(){var ns, nss, target, i, src, length ;length = arguments.length;if(length>1){ns = arguments[0]; i = 1;} else { i = 0;}if(!( src = arguments[i] ) || !jQuery.isPlainObject( src ) ){return ;}target = this;if(ns){nss = ns.split('.'); // TODO 這里須要做好多字符過濾處理for( var idx = 0; idx < nss.length ; ++idx ){ns = nss[idx];// ns 的語義改變了,原來的語義使命結束,這里用作暫時變量ns = jQuery.trim(ns);if(ns){target[ns] = target[ns] || {};target = target[ns];}}}for( ; i < length ; ++i ){src = arguments[i];jQuery.extend( target, src );}} });jQuery.ns_extend('pet',{miao : function(){alert('i am a cat');} });jQuery.ns_extend('my.fav.pet',{wangwang : function(){alert('i am a dog');} });$.pet.miao();$.my.fav.pet.wangwang();
目的達成。
這是筆記的第10篇,我們考慮怎樣從有用角度,從“類”的角度對家Query進行擴展。
jQuery是一個緊湊的框架,專注解決最核心的問題,沒有追求大而全,全部擴展機制對jQuery來說,至關重要。
JavaScript以函數為基礎,今天我們試圖基于jQuery構建一個針對自己項目的函數庫,每一個函數實現特定的功能,同一時候對這些函數進行有效的組織。
作者博客:http://blog.csdn.net/stationxp
作者微博:http://weibo.com/liuhailong2008
轉載請取得作者允許
1、目標
通過$調用我們的函數庫。函數庫依照功用分級組織。效果例如以下:$.util.parseDate
$.util.parseDecimal
$.page.event.init
2、方法
上一篇我們了解到。通過jQuery.extend()能夠方便地對jQuery進行擴展,甚至能覆蓋extend本身。jQuery.extend()支持下面幾種函數簽名:
jQuery.extend(obj);
jQuery.extend(isDeep,obj);
jQuery.extend(target,src1,src2,...);
jQuery.extend(isDeep,target,src1,src2,...);
我們能夠extend源碼的基礎上改動,并覆蓋原來的extend,這樣改動一個可能被廣泛使用的函數,改動了其它人對輸入參數的預期,是不合適的,可能會誤導其它人。輸入了錯誤的參數,帶來錯誤隱患。
我們又一次定義一個方法。例如以下:
jQuery.extend({ns_extend : function(){var ns, nss, target, i, src, length ;length = arguments.length;if(length>1){ns = arguments[0]; i = 1;} else { i = 0;}if(!( src = arguments[i] ) || !jQuery.isPlainObject( src ) ){return ;}target = this;if(ns){nss = ns.split('.'); // TODO 這里須要做好多字符過濾處理for( var idx = 0; idx < nss.length ; ++idx ){ns = nss[idx];// ns 的語義改變了,原來的語義使命結束,這里用作暫時變量ns = jQuery.trim(ns);if(ns){target[ns] = target[ns] || {};target = target[ns];}}}for( ; i < length ; ++i ){src = arguments[i];jQuery.extend( target, src );}} });jQuery.ns_extend('pet',{miao : function(){alert('i am a cat');} });jQuery.ns_extend('my.fav.pet',{wangwang : function(){alert('i am a dog');} });$.pet.miao();$.my.fav.pet.wangwang();
目的達成。
轉載于:https://www.cnblogs.com/claireyuancy/p/6742283.html
總結
以上是生活随笔為你收集整理的Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: libev学习代码
- 下一篇: Linux查看CPU、内存、IO占用高的