成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

QWrap入門之a(chǎn)pps果實擴展JS原生類

開發(fā) 前端
就像是一棵樹有很多果實一樣,QWrap也有很多apps,本文講解"擴展JS原生類"的應(yīng)用,即apps/core_retouched.js應(yīng)用。本應(yīng)用會對原生類進行擴展,方便用戶操作原生對象,例如:String、Array、Function等。

就像是一棵樹有很多果實一樣,QWrap也有很多apps,本文講解"擴展JS原生類"的應(yīng)用,即apps/core_retouched.js(http://dev.qwrap.com/resource/js/apps/core_retouched.js)應(yīng)用。本應(yīng)用會對原生類進行擴展,方便用戶操作原生對象,例如:String、Array、Function等。

本應(yīng)用的典型應(yīng)用場景:jquery專注于dom,所以欠缺原生對象的操作,以及模塊加載機制等。本庫恰好能提供,并且與jquery無沖突存在。

前面已有文章講過core/core_retouch.js,它是一個retouch文件。

而本文講的apps/core_retouched.js應(yīng)用,它是一個復合文件,它由以下文件組成:

  1. document.write('<script type="text/javascript" src="' + srcPath + 'core/core_base.js"><\/script>');  
  2. document.write('<script type="text/javascript" src="' + srcPath + 'core/module.h.js"><\/script>');  
  3. document.write('<script type="text/javascript" src="' + srcPath + 'core/browser.js"><\/script>');  
  4. document.write('<script type="text/javascript" src="' + srcPath + 'core/string.h.js"><\/script>');  
  5. document.write('<script type="text/javascript" src="' + srcPath + 'core/object.h.js"><\/script>');  
  6. document.write('<script type="text/javascript" src="' + srcPath + 'core/array.h.js"><\/script>');  
  7. document.write('<script type="text/javascript" src="' + srcPath + 'core/hashset.h.js"><\/script>');  
  8. document.write('<script type="text/javascript" src="' + srcPath + 'core/date.h.js"><\/script>');  
  9. document.write('<script type="text/javascript" src="' + srcPath + 'core/function.h.js"><\/script>');  
  10. document.write('<script type="text/javascript" src="' + srcPath + 'core/class.h.js"><\/script>');  
  11. document.write('<script type="text/javascript" src="' + srcPath + 'core/helper.h.js"><\/script>');  
  12. document.write('<script type="text/javascript" src="' + srcPath + 'core/custevent.h.js"><\/script>');  
  13. document.write('<script type="text/javascript" src="' + srcPath + 'core/custevent_retouch.js"><\/script>');  
  14.  
  15. document.write('<script type="text/javascript" src="' + srcPath + 'core/core_retouch.js"><\/script>'); 

 

 

在實際中,如果要用到按需異步加載,還需要再加上一個模塊配置文件(詳情參見《QWrap入門之a(chǎn)pps種子應(yīng)用》
復合文件在發(fā)布上線時會將分文件合并成起來,名件名還是不變。合并后的內(nèi)容為:apps/core_retouched.combo.js

我們以這一個例子來看jquery + core_retouched的應(yīng)用。

  1. <HTML><HEAD><TITLE>QWrap---FunctionH.mul</TITLE>  
  2. <META content="text/html; charset=gb2312" http-equiv=Content-Type>  
  3. <script src="http://common.cnblogs.com/script/jquery.js" type="text/javascript"></script>  
  4. <script src="http://dev.qwrap.com/resource/js/apps/core_retouched.js" type="text/javascript"></script>  
  5. </HEAD>  
  6. <body>  
  7. <div id="id1">日期是?</div>  
  8. <div id="id2">時間是?</div>  
  9. <input type=button value="顯示" onclick="test()"/>  
  10. </body>  
  11. <script type="text/javascript">  
  12. function test(){  
  13. $('#id1').html('日期是'+new Date().format());  
  14. $('#id2').html('日期是'+new Date().format('hh:mm:ss'));  
  15. }  
  16. </script>  
  17. </HTML> 

上面的例子中,我們需要用到一個日期的格式化,但是這個jquery不會提供,因為jquery專注于dom,沒有提供日期格式化的意圖。

而有的同學使用過prototype.js框架,已經(jīng)習慣了類似于“new Date().format()”、“str.trim()”這樣的原型用法,后來轉(zhuǎn)而使用jquery時,就覺得少了很多方法。

而QWrap的core_retouched應(yīng)用,恰恰是"擴展JS原生類",專門就是提供這類應(yīng)用的。

好的,我們看一下,core_retouched提供了哪些便利:

字符串相關(guān)

s.byteLen() //獲取字節(jié)長度

s.camelize() //駝峰化

s.contains(subStr) //判斷一個字符串是否包含另一個字符串

s.dbc2sbc() //全角轉(zhuǎn)半角

s.decamelize() //反駝峰化

s.decode4Html() //為html作轉(zhuǎn)碼

s.encode4Html() //為html作解碼

s.encode4HtmlValue() //為htmlValue作轉(zhuǎn)碼

s.encode4Http() //為http作轉(zhuǎn)碼

s.encode4Js() //為js作轉(zhuǎn)碼

s.evalExp(opts) //eval一個表達式

s.evalJs(opts) //eval語句

s.format(arg0) //字符串格式化 //一個常用的功能

s.mulReplace(arr) //多重update

s.stripTags() //去除tag內(nèi)容

s.subByte(len, tail) //按字節(jié)長度截取 //這個在前端截取字符串時很有用,所有的洋框架都沒提供這個方法。

s.tmpl(opts) //字符串模板 //字符串模板是一個很實用的功能,后來jquery也加上了。

s.trim() //去兩端空格

數(shù)組相關(guān):

Array.toArray(arr) //將一個ArrayLike對象轉(zhuǎn)化成Array對象

arr.clear() //清空一個數(shù)組

arr.contains(obj) //判斷數(shù)組中是否包含某對象

arr.every(callback, pThis) //按標準擴展

arr.expand() //將一個深層數(shù)組展開一層

arr.filter(callback, pThis) //按標準擴展

arr.forEach(callback, pThis) //按標準擴展 //有不少庫都提供類似的功能,QWrap提供的與標準基本兼容

arr.indexOf(obj, fromIdx) //按標準擴展

arr.lastIndexOf(obj, fromIdx) //按標準擴展

arr.map(callback, pThis) //按標準擴展

arr.reduce(callback, initial) //按標準擴展

arr.reduceRight(callback, initial) //按標準擴展

arr.remove(obj) //從數(shù)組中移除某元素

arr.some(callback, pThis) //按標準擴展

arr.unique() //數(shù)組元素除重

arr.union(arr2) //數(shù)組求并集

arr.intersect(arr2) //數(shù)組求交集

日期相關(guān)

d.format(pattern) //日期格式化

函數(shù)相關(guān)

Function.bind(func, thisObj) //按標準擴展

Function.methodize(func, attr) //靜態(tài)函數(shù)方法化

Function.mul(func, opt) //讓方法的第一個參數(shù)可以是數(shù)組

Function.createInstance(class) //按標準擴展

Function.extend(class, p) //類繼承 //各個庫實現(xiàn)的類繼承千差萬別,本實現(xiàn)由月影與好奇提供。

對象相關(guān)

Object.isArray(obj) //判斷對象是否是數(shù)組

Object.isArrayLike(obj) //判斷對象是否是ArrayLike

Object.isElement(obj) //判斷對象是否是html元素

Object.isFunction(obj) //。。。

Object.isObject(obj) //。。。

Object.isPlainObject(obj) //。。。

Object.isString(obj) //。。。

Object.dump(obj, props) //輸出指定屬性

Object.fromArray(obj, keys, values) //按keys與values來擴充對象

Object.get(obj, prop, nullSensitive) //強get //某些情況下,可以用ObjectH.get(obj,'a.b.c.d')來代替obj.a && obj.a.b && obj.a.b.c && obj.a.b.c.d

Object.keys(obj) //獲取keys

Object.map(obj, fn, thisObj) //參考array的map,實現(xiàn)Object的map

Object.mix(des, src, override) //mixin

Object.set(obj, prop, value) //強set

Object.stringify(obj) //序列化 //stringify向JSON.stringify靠齊,不過不支持第二個參數(shù)

Object.values() //獲取values

上面選了幾個有點特色的功能加上了鏈接,不妨花兩分鐘時間看一眼。----每一個都很有意義,篇幅有限,無法詳細介紹,可以自行圍觀。

具體的功能,參見上面的鏈接,這里不用一一贅述。

另,與apps/core_retouched.js對應(yīng)的幫助文件,參見有啊版幫助文件中左側(cè)目錄樹的"JS原生對象擴展"這個節(jié)點下的內(nèi)容。

apps/core_retouched.js經(jīng)YUI壓縮后大小為17K。可以獨立放心使用。

附:QWrap博客地址:http://www.qwrap.com

原文:http://www.cnblogs.com/jkisjk/archive/2011/04/21/qwrap_apps_core_retouched.html

【編輯推薦】

  1. QWrap入門之a(chǎn)pps種子應(yīng)用
  2. QWrap選擇器的一個bug:tagName的大小寫
  3. 7個優(yōu)秀的JavaScript資源推薦
  4. 使用node.js進行服務(wù)器端JavaScript編程
  5. JavaScript實現(xiàn)頁面滾動圖片加載
責任編輯:陳貽新 來源: JKisJK的博客
相關(guān)推薦

2011-08-09 13:29:06

2011-08-10 15:41:20

QWrap

2011-01-21 10:16:40

chromeweb apps

2021-04-05 08:11:04

Java基礎(chǔ)Calendar類DateFormat類

2011-11-16 16:21:09

AdobeAIR

2021-04-08 10:10:46

JavaSimpleDateFList接口

2021-04-26 10:01:25

JavaJava基礎(chǔ)Runtime

2021-03-29 10:00:32

Java基礎(chǔ)Random類Random

2022-03-28 13:21:00

云計算云原生混合云

2023-05-04 16:03:50

KubernetesCI/CD集成

2022-05-27 08:16:37

Thread類Runnable接口

2023-11-28 08:01:25

2023-12-01 07:28:40

SpringbootBean

2023-09-28 08:49:41

springBean

2011-11-16 15:14:57

AdobeAIRiOS設(shè)備

2009-07-22 07:53:00

Scala擴展類

2022-07-07 08:30:50

類型注解原生JS

2013-12-24 09:38:50

asm.jsJavascript

2025-05-08 03:25:00

DubboSPI機制

2012-02-28 15:39:48

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产午夜一级 | 亚洲午夜电影 | 国产一区二区三区免费视频 | 亚洲毛片在线观看 | 天堂亚洲 | 在线一区| 先锋av资源网 | 99久久电影 | 正在播放国产精品 | 国产精品视频免费播放 | 久久久久国产一区二区三区 | 亚洲精品久 | 欧美日韩午夜精品 | 91精品一区二区三区久久久久 | 日韩毛片播放 | 国产精品极品美女在线观看免费 | 国产精品视频在线观看 | 草草视频在线观看 | 国产精品96久久久久久 | 亚洲精品一 | 欧美精品日韩精品国产精品 | 中国毛片免费 | 黑人成人网 | 精品久久久久久亚洲精品 | 亚洲精品2| 污视频在线免费观看 | 羞羞视频网页 | 亚洲人精品午夜 | 超碰91在线 | 久久久入口 | 二区欧美 | 国产一区二区久久 | 中文字幕av中文字幕 | 国产精品一区二区三区在线 | 国产精品一区二区不卡 | 视频二区在线观看 | 麻豆视频在线免费观看 | av毛片| 国产精品一区二区三区久久 | 亚洲国产网| 精品综合久久久 |