當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
生活随笔
收集整理的這篇文章主要介紹了
Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
計(jì)劃按例如以下順序完畢這篇筆記:
Java程序猿的JavaScript學(xué)習(xí)筆記(1——理念) Java程序猿的JavaScript學(xué)習(xí)筆記(2——屬性復(fù)制和繼承) Java程序猿的JavaScript學(xué)習(xí)筆記(3——this/call/apply) Java程序猿的JavaScript學(xué)習(xí)筆記(4——this/閉包/getter/setter) Java程序猿的JavaScript學(xué)習(xí)筆記(5——prototype) Java程序猿的JavaScript學(xué)習(xí)筆記(6——面向?qū)ο竽M) Java程序猿的JavaScript學(xué)習(xí)筆記(7——jQuery基本機(jī)制) Java程序猿的JavaScript學(xué)習(xí)筆記(8——jQuery選擇器) Java程序猿的JavaScript學(xué)習(xí)筆記(9——jQuery工具方法) Java程序猿的JavaScript學(xué)習(xí)筆記(10——jQuery-在“類”層面擴(kuò)展) Java程序猿的JavaScript學(xué)習(xí)筆記(11——jQuery-在“對(duì)象”層面擴(kuò)展) Java程序猿的JavaScript學(xué)習(xí)筆記(12——jQuery-擴(kuò)展選擇器) Java程序猿的JavaScript學(xué)習(xí)筆記(13——jQuery UI) Java程序猿的JavaScript學(xué)習(xí)筆記(14——擴(kuò)展jQuery UI)
這是筆記的第10篇,我們考慮怎樣從有用角度,從“類”的角度對(duì)家Query進(jìn)行擴(kuò)展。
$.util.parseDate
$.util.parseDecimal
$.page.event.init
jQuery.extend()支持下面幾種函數(shù)簽名:
jQuery.extend(obj);
jQuery.extend(isDeep,obj);
jQuery.extend(target,src1,src2,...);
jQuery.extend(isDeep,target,src1,src2,...);
我們能夠extend源碼的基礎(chǔ)上改動(dòng),并覆蓋原來(lái)的extend,這樣改動(dòng)一個(gè)可能被廣泛使用的函數(shù),改動(dòng)了其它人對(duì)輸入?yún)?shù)的預(yù)期,是不合適的,可能會(huì)誤導(dǎo)其它人。輸入了錯(cuò)誤的參數(shù),帶來(lái)錯(cuò)誤隱患。
我們又一次定義一個(gè)方法。例如以下:
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 這里須要做好多字符過(guò)濾處理for( var idx = 0; idx < nss.length ; ++idx ){ns = nss[idx];// ns 的語(yǔ)義改變了,原來(lái)的語(yǔ)義使命結(jié)束,這里用作暫時(shí)變量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();
目的達(dá)成。
這是筆記的第10篇,我們考慮怎樣從有用角度,從“類”的角度對(duì)家Query進(jìn)行擴(kuò)展。
jQuery是一個(gè)緊湊的框架,專注解決最核心的問(wèn)題,沒(méi)有追求大而全,全部擴(kuò)展機(jī)制對(duì)jQuery來(lái)說(shuō),至關(guān)重要。
JavaScript以函數(shù)為基礎(chǔ),今天我們?cè)噲D基于jQuery構(gòu)建一個(gè)針對(duì)自己項(xiàng)目的函數(shù)庫(kù),每一個(gè)函數(shù)實(shí)現(xiàn)特定的功能,同一時(shí)候?qū)@些函數(shù)進(jìn)行有效的組織。
作者博客:http://blog.csdn.net/stationxp
作者微博:http://weibo.com/liuhailong2008
轉(zhuǎn)載請(qǐng)取得作者允許
1、目標(biāo)
通過(guò)$調(diào)用我們的函數(shù)庫(kù)。函數(shù)庫(kù)依照功用分級(jí)組織。效果例如以下:$.util.parseDate
$.util.parseDecimal
$.page.event.init
2、方法
上一篇我們了解到。通過(guò)jQuery.extend()能夠方便地對(duì)jQuery進(jìn)行擴(kuò)展,甚至能覆蓋extend本身。jQuery.extend()支持下面幾種函數(shù)簽名:
jQuery.extend(obj);
jQuery.extend(isDeep,obj);
jQuery.extend(target,src1,src2,...);
jQuery.extend(isDeep,target,src1,src2,...);
我們能夠extend源碼的基礎(chǔ)上改動(dòng),并覆蓋原來(lái)的extend,這樣改動(dòng)一個(gè)可能被廣泛使用的函數(shù),改動(dòng)了其它人對(duì)輸入?yún)?shù)的預(yù)期,是不合適的,可能會(huì)誤導(dǎo)其它人。輸入了錯(cuò)誤的參數(shù),帶來(lái)錯(cuò)誤隱患。
我們又一次定義一個(gè)方法。例如以下:
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 這里須要做好多字符過(guò)濾處理for( var idx = 0; idx < nss.length ; ++idx ){ns = nss[idx];// ns 的語(yǔ)義改變了,原來(lái)的語(yǔ)義使命結(jié)束,這里用作暫時(shí)變量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();
目的達(dá)成。
轉(zhuǎn)載于:https://www.cnblogs.com/claireyuancy/p/6742283.html
總結(jié)
以上是生活随笔為你收集整理的Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: libev学习代码
- 下一篇: JS报错修改日记(1):Uncaught