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

javascript 命名空間以提高代碼重用性

當在同一個網頁里引入10多個js文件之后,
各js中的同名函數就很容易沖突了。
比如xxx庫里寫了個addCssStyle方法,
yyy類庫里也寫了個addCssStyle方法,
而這兩個方法的具體實現又有一定差別。
那么同時引用這兩個組件的時候,函數沖突之后導致頁面效果發生變化,
調試和修改都是非常痛苦的,如果為了避免沖突,
而放棄引用一些優秀的組件,那更是讓人郁悶的事情。

為此,在封裝Javascript組件庫的時候,請使用命名空間來避免沖突。
將所有的方法和變量都要按包名類名的方式來寫。
(這個時候寫代碼的感覺和封裝Java的util方法一樣方便,呵呵)
由此,我的js庫按如下方式封裝。
google了半天,都沒現成的,于是自己摸索出來,示例代碼如下:
(lizongbo原創!!!)

<script language="JavaScript" type="text/Javascript" >
<!-- //初始化命名空間
var jscom = jscom ? jscom : {};
jscom.lizongbo = jscom.lizongbo ? jscom.lizongbo : {};
//第一種封裝方法
jscom.lizongbo.util = jscom.lizongbo.util ? jscom.lizongbo.util : {
crtVersion : 'jscom.lizongbo.util version 0.0.1', //注意用逗號隔開
sayHello: function (str){
window.alert('hello : '+str +' by ' + this.getVersion()); //變量引用要加上this
},//注意用逗號隔開
getVersion :function (){
//alert(' jscom.lizongbo.util version ' + this.crtVersion);//變量引用要加上this
return this.crtVersion+' lizongbo';
}//注意不能夠有逗號
}
//第二種封裝方法
jscom.lizongbo.util2 =function (){};//重點是這行,它保證了下面的with調用
jscom.lizongbo.util2.crtVersion=' jscom.lizongbo.util2 version 0.0.2';
jscom.lizongbo.util2.sayHello = function(str){
with (jscom.lizongbo.util2) {//這里也是重點,不然會找不到getVersion方法。
window.alert('你好 : '+str +' by ' + getVersion());//這種方法不用加this
}
};
jscom.lizongbo.util2.getVersion = function(){
with (jscom.lizongbo.util2) {//這里也是重點,不然會找不到crtVersion變量。
return crtVersion+' lizongbo2';
}
};
var vutil1= jscom.lizongbo.util; //和Java的import差不多好用
vutil1.sayHello('lizongbo'); //第一種調用
var vutil2= jscom.lizongbo.util2;
vutil2.sayHello('lizongbo');//第二種調用
//-->
</script>

把上面的代碼復制網頁里看看效果吧。
對比兩種實現方式,現有代碼按第二種方式改造最為方便。
再把js文件按命名空間命名,那樣操作就更加方便了。
例如
<script type="text/Javascript" src="/commons/scripts/jscom.lizongbo.util1.js"></script>
<script type="text/Javascript" src="/commons/scripts/jscom.lizongbo.util2.js"></script>
只要都按此方式編寫的庫,再也不用擔心引入多個js文件之后的函數沖突問題了。

JavaScript技術javascript 命名空間以提高代碼重用性,轉載需保留來源!

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

主站蜘蛛池模板: 免费撕开胸罩吮胸视频 | 快播在线电影网站 | 超碰免费视频公开观看 | 成人无码精品1区2区3区免费看 | 黑人巨茎vide抽搐 | 天堂岛www天堂资源在线 | 国产午夜精品理论片 | 色鲁97精品国产亚洲AV高 | 亚洲天堂2017无码 | 2019久久视频这里有精品15 | 99爱免费视频 | 午夜AV国产欧美亚洲高清在线 | 日韩男明星 | 禁室培欲在线视频免费观看 | av视频在线免播放观看 | 一本色道久久综合一区 | 久久re热线视频国产 | 超碰97人人做人人爱亚洲尤物 | 中文字幕绝色少妇性 | 亚洲AV噜噜狠狠网址蜜桃尤物 | 老少配xxxxx欧美 | 久久ZYZ资源站无码中文动漫 | 别停好爽好深好大好舒服视频 | 俄罗斯一级毛片aaaa | 邪恶肉肉全彩色无遮盖 | 日韩人妻双飞无码精品久久 | 一本大道熟女人妻中文字幕在线 | 18禁黄无遮挡禁游戏在线下载 | 香蕉精品国产自在现线拍 | 奶头被客人吸得又红又肿 | 国产精品久人妻精品 | 欧洲电影巜肉欲丛林 | 欧美一区二区视频97色伦 | 久青草国产在视频在线观看 | 94色94色永久网站 | 97人人超碰国产精品最新蜜芽 | 国产精品69人妻无码久久 | 国产亚洲精品久久播放 | 久久国产伦子伦精品 | 蜜桃传媒在线观看入口 | 精品熟女少妇AV久久免费A片 |