天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Javascript匿名函數(shù)的一種應(yīng)用 代碼封裝

在一些Javascript庫中可以看見這種寫法:
復(fù)制代碼 代碼如下:
(function(){
//所有庫代碼代碼
})();

說實話,對于js初學(xué)者的我來說。這個東西太嚇人了,在這些JS庫中,這個函數(shù)基本上把整個庫的所有代碼全括起來了,這種寫法完全超越了我的常識。難道不應(yīng)該好好的劃分一下嗎,難道不應(yīng)該體現(xiàn)出層次和功能劃分嗎,怎么會一個函數(shù)搞定呢。我一開始完全不敢去細想它的道理。直到使用JS一段時間后,某一天一位同事在閑聊時說起了這個問題,我才知道這個叫匿名函數(shù)。匿名函數(shù)我并不陌生,C#,Python,Lua中都有這個咚咚。我到網(wǎng)上去查了一下,介紹文章很多,也很詳細,但是我心頭的疑問卻沒有得到解決:為什么要這樣寫。
我找了一款著名的JS開源庫JQuery,他的代碼就是典型的以上寫法,在粗略看了他的代碼之后我發(fā)現(xiàn)這套代碼實在太大了太復(fù)雜了,實在不適合我。于是我轉(zhuǎn)而去看另外一個開源js庫swfobject,這個庫提供了簡單的接口把Flash控件嵌入到網(wǎng)頁中。這個代碼好多了,很短,很快就看完了。看完之后我恍然大悟,原來如此。真理就是如此簡單,之所以這樣寫,只有一個目的:封裝。
初學(xué)JS的時候,我問過同事,js怎么定義私有函數(shù)和變量。當時的得到的答案是:js不是面向?qū)ο蟮模惶峁┻@些功能。我對這個答案也坦然接受了,畢竟嚴格的封裝并不是必要的。現(xiàn)在終于明白了,辦法總是有的,在不支持封裝的語言里同樣可以實現(xiàn)封裝。而實現(xiàn)的方法就是匿名函數(shù)。來看一段代碼:
復(fù)制代碼 代碼如下:
//定義
function F(x)
{
this.x = x;
function double(x){return x*x;}
this.getDoubleX(){
return double(this.x);
}
}

//使用
f = new F(12);
alert(f.getDoubleX());


上面的代碼很簡單,我沒有去運行它。懂點js的都知道這是JS的類定義方式。函數(shù)F相當于一個構(gòu)造函數(shù),而函數(shù)里面的其他定義都是函數(shù)私有的外部無法訪問,例如double函數(shù)。這樣就變相實現(xiàn)了私有方法。其他打上“this.”前綴的成員相當于公開成員,外部可以訪問。
而這些庫之所以要用一個大函數(shù)包裹整個庫代碼,就是為了不向使用者暴露內(nèi)部方法和變量,強制用戶只能訪問開放的API。從這一點可以開出這些開發(fā)者的良苦用心。
到這里我不禁又要問了,js如何實現(xiàn)繼承呢。希望這一次的答案不要像上一次一樣:不支持。

JavaScript技術(shù)Javascript匿名函數(shù)的一種應(yīng)用 代碼封裝,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久青青草原综合伊人 | 日本妈妈xxxx | 91青青草原 | 妖精视频一区二区免费 | 香港日本三级亚洲三级 | 校花被扒衣吸乳羞羞漫画 | 岛国在线永久免费视频 | 么么哒日本影院 | 亚州性夜夜射在线观看 | 人体内射精一区二区三区 | 国内精品不卡一区二区三区 | 欧美色图一区二区三区 | 视频网站入口在线看 | 名女躁b久久天天躁 | 领导边摸边吃奶边做爽在线观看 | 免费在线观看国产 | 伊人久久99热这里只有精品 | 免费女性裸身照无遮挡网站 | 午夜伦理伦理片在线观 | 超碰在线视频97 | 欧美MV日韩MV国产网站 | 国产精品1区2区 | 亚洲午夜精品久久久久久抢 | 日本无卡无吗在线 | 特级黑人三人共一女 | 中文字幕AV在线一二三区 | 暖暖视频中国在线观看免费韩国 | 8050午夜二级一片 | 理论片午午伦夜理片2021 | 看了n遍舍不得删的黄文 | 成人AV无码一二二区视频免费看 | 国产精品久久久久影院色 | 99久久久无码国产精品免费人妻 | 亚洲中字慕日产2020 | 91精品一区二区三区在线观看 | 伊人热人久久中文字幕 | 果冻传媒在线观看进入窗口 | 国产精品人妻无码77777 | 午夜国产精品视频在线 | 色AV色婷婷66人妻久久久 | 国产AV午夜精品一区二区入口 |