最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

犀利的js 函數(shù)集合

 更新時(shí)間:2009年06月11日 22:28:24   作者:  
和同事討論js時(shí),我說(shuō)較為理想的狀態(tài)是,把js當(dāng)一把好用的匕首,隨手拿來(lái),捅一刀子就走。話雖如此,但現(xiàn)實(shí)生活中大部分時(shí)候的情況是不理想的。
那么分享幾個(gè)理想狀態(tài)的js原型函數(shù)。大部分整理修改自月影的blog
另外推薦一下月影的書(shū)——"王者歸來(lái)",如果你每周js的coding時(shí)間大于5小時(shí),還是值得一讀的。
1.函數(shù)膠水,有很多同學(xué)用jq用習(xí)慣了,有時(shí)就為一個(gè)類似于c#里的event+=delegate而用jq,似乎有點(diǎn)劃不來(lái),這幾原型函數(shù)就夠了。
復(fù)制代碼 代碼如下:

Function.prototype.$concat = function(){
var funcs = [this].concat(Array.apply([], arguments));
return function(){
var ret = [];
for(var i = 0; i < funcs.length; i++){
var func = funcs[i] instanceof Function ? funcs[i] : new Function(funcs[i]);
ret.push(func.apply(this, arguments));
}
return ret;
}
}
//var concat = (function a(a){
// alert("a:"+a);
//}).$concat(function b(b){
// alert("b:"+b);
//});
//concat(1);

2.函數(shù)柯靈化,柯靈化是面向函數(shù)式語(yǔ)言的一個(gè)重要特性,和大部分人所持有的面向過(guò)程的編程思想?yún)^(qū)別很大,就我愚見(jiàn),日常工作中,函數(shù)柯靈化除了能把一些代碼寫(xiě)得優(yōu)雅(或許還有詭異)以外,不是特別的"必要"。
復(fù)制代碼 代碼如下:

Function.prototype.$curry=function(){
with({that:this})
return function()
{
var args = Array.prototype.slice.call(arguments);
if(args.length<that.length)
{
return function(){
var _args = args.concat(Array.prototype.slice.call(arguments));
return that.$curry().apply(this,_args);
}
}
else return that.apply(this,args);
}
}
//var curry=(function f(a,b,c){
// alert([a,b,c]);
// }).$curry();
//curry(1)(2)(3);
//curry(1,2)(3);

3.對(duì)象閉包。這個(gè)詞是我造的,不過(guò)看一下注釋里的調(diào)用便可以理解,這個(gè)函數(shù)原本是為了證明with和閉包的等價(jià)性,但卻提供了一個(gè)極有價(jià)值的模式。
復(fù)制代碼 代碼如下:

Function.prototype.$bind=function(object){
var callback = function () {
return arguments[0];
}
with(object){
return eval('callback(' + this.toString() + ')');
}
}
//var obj = {a:1,b:2};
//var bind=(function (){
// a=10;
// b=11;
//}).$bind(obj);
//bind();
//alert(obj.a);

4. string.Format。怕是很多js coder都想有一個(gè)c#(java類似)里的string.Format方法,其實(shí)一點(diǎn)也不麻煩。
復(fù)制代碼 代碼如下:

String.prototype.$format=function(){
var ret;
for(var i=1;i<arguments.length;i++){
var exp = new RegExp('\\{' + (i-1) + '\\}','gm');
ret = (ret||this).replace(exp,arguments[i-1]);
}
return ret;
}
//alert("{0},{1},{4}".$format(0,1,2));

以后有機(jī)會(huì)還會(huì)陸續(xù)分享一些這樣犀利的函數(shù)。暫且給些函數(shù)合計(jì)取個(gè)名字,就叫 p.js 吧。

相關(guān)文章

  • JavaScript中關(guān)于數(shù)組的調(diào)用方式

    JavaScript中關(guān)于數(shù)組的調(diào)用方式

    這篇文章主要介紹了JavaScript中關(guān)于數(shù)組的調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • JS 對(duì)輸入框進(jìn)行限制(常用的都有)

    JS 對(duì)輸入框進(jìn)行限制(常用的都有)

    本文為大家介紹下使用js對(duì)輸入框進(jìn)行限制:文本框只能輸入數(shù)字代碼、只能輸入數(shù)字、只能輸入字母和漢字、只能輸入英文字母和數(shù)字等等,還有很多,感興趣的可以學(xué)習(xí)下
    2013-07-07
  • 微信小程序select下拉框?qū)崿F(xiàn)效果

    微信小程序select下拉框?qū)崿F(xiàn)效果

    這篇文章主要介紹了微信小程序select下拉框?qū)崿F(xiàn)效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • js刪除指定位置超鏈接中含有百度與360的標(biāo)題

    js刪除指定位置超鏈接中含有百度與360的標(biāo)題

    最近需要將最近更新的部分內(nèi)容刪除,只要標(biāo)題中包括百度與360的都給刪除了,主要用到了jquery的each,需要的朋友可以參考下
    2021-01-01
  • JS的時(shí)間格式化和時(shí)間戳轉(zhuǎn)換函數(shù)示例詳解

    JS的時(shí)間格式化和時(shí)間戳轉(zhuǎn)換函數(shù)示例詳解

    這篇文章主要介紹了JS的時(shí)間格式化和時(shí)間戳轉(zhuǎn)換函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • javascript實(shí)現(xiàn)uploadify上傳格式以及個(gè)數(shù)限制

    javascript實(shí)現(xiàn)uploadify上傳格式以及個(gè)數(shù)限制

    這篇文章主要介紹了javascript如何限制uploadify上傳格式以及個(gè)數(shù)的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2015-11-11
  • Antd中Table列表行默認(rèn)包含修改及刪除功能的封裝方法

    Antd中Table列表行默認(rèn)包含修改及刪除功能的封裝方法

    這篇文章主要介紹了Antd中Table列表行默認(rèn)包含修改及刪除功能的封裝,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • JS實(shí)現(xiàn)跟隨鼠標(biāo)閃爍轉(zhuǎn)動(dòng)色塊的方法

    JS實(shí)現(xiàn)跟隨鼠標(biāo)閃爍轉(zhuǎn)動(dòng)色塊的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)跟隨鼠標(biāo)閃爍轉(zhuǎn)動(dòng)色塊的方法,涉及javascript操作html元素及css樣式的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 小程序?qū)崿F(xiàn)搜索框功能

    小程序?qū)崿F(xiàn)搜索框功能

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)搜索框功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • pnpm?monorepo?聯(lián)調(diào)方案問(wèn)題解析

    pnpm?monorepo?聯(lián)調(diào)方案問(wèn)題解析

    文章主要介紹了在pnpmmonorepo環(huán)境下進(jìn)行多庫(kù)聯(lián)調(diào)的方案,包括使用`pnpmlink`命令來(lái)鏈接指定的文件夾或全局的`node_modules`,并在項(xiàng)目中通過(guò)`pnpmlink--global<pkg>`來(lái)引用這些庫(kù),本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12

最新評(píng)論

双牌县| 惠州市| 柳林县| 九龙城区| 贡山| 武冈市| 崇阳县| 锡林浩特市| 嘉祥县| 阿图什市| 西和县| 固始县| 垦利县| 鄂伦春自治旗| 册亨县| 霸州市| 浦江县| 桐梓县| 平罗县| 仙桃市| 罗平县| 宜川县| 通辽市| 六盘水市| 犍为县| 辽阳市| 湖北省| 新竹市| 塘沽区| 亳州市| 长武县| 利津县| 钟山县| 泗阳县| 平定县| 宾阳县| 甘泉县| 抚顺县| 奉贤区| 新宁县| 左权县|