日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

js命名空间

發(fā)布時(shí)間:2025/7/25 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js命名空间 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在小規(guī)模的腳本開發(fā)中,有時(shí)候并不值得去引用命名空間,因?yàn)闀?huì)帶來某種程度的復(fù)雜性;但是當(dāng)在同一個(gè)網(wǎng)頁里引入10多個(gè)js文件之后,各js中的同 名函數(shù)就很容易沖突了。比如xxx庫里寫了個(gè)addCssStyle方法,yyy類庫里也寫了個(gè)addCssStyle方法,而這兩個(gè)方法的具體實(shí)現(xiàn)又有 一定差別。那么同時(shí)引用這兩個(gè)組件的時(shí)候,函數(shù)沖突之后導(dǎo)致頁面效果發(fā)生變化,調(diào)試和修改都是非常痛苦的,如果為了避免沖突,而放棄引用一些優(yōu)秀的組件, 那更是讓人郁悶的事情。為此,在封裝javascript組件庫的時(shí)候,請(qǐng)使用命名空間來避免沖突。將所有的方法和變量都要按包名,類名的方式來寫。(這個(gè)時(shí)候?qū)懘a的感覺和封裝java的util方法一樣方便,呵呵)

所以,請(qǐng)記住:請(qǐng)為你封裝的JavaScript庫加上命名空間以提高代碼重用性。

但是JavaScript原生并不支持命名空間,需要變通來實(shí)現(xiàn)。

JavaScript中,所有的對(duì)象(或者稱類型,例如Boolean,Array,Function)都可以認(rèn)為是一個(gè)關(guān)聯(lián)數(shù)組。關(guān)聯(lián)數(shù)組中的對(duì)象可以 使用點(diǎn)(.)進(jìn)行引用,這樣我們可以利用關(guān)聯(lián)數(shù)組變相地實(shí)現(xiàn)命名空間。首先聲明一個(gè)關(guān)聯(lián)數(shù)組作為根,因?yàn)轫撁媛暶鞯膶?duì)象都是window這個(gè)變量的成員, 所以一般命名空間的實(shí)現(xiàn)都以window為根。當(dāng)向window申請(qǐng)a.b.c的命名空間時(shí),首先在window中查看是否存在a這個(gè)成員,如果沒有則在 window下新建一個(gè)名為a的空關(guān)聯(lián)數(shù)組,如果已經(jīng)存在a,則繼續(xù)在window.a中查看b是否存在,以此類推。下面分別是Atlas和YUI中的實(shí) 現(xiàn)方法。

//Atlas命名空間的實(shí)現(xiàn)方法

Function.registerNamespace =function(namespacePath){

//以window為根

var rootObject =window;

//對(duì)命名空間路徑拆分成數(shù)組

var namespaceParts =namespacePath.split('.');

for (var i =0;i <namespaceParts.length;i++) {

?? ?var currentPart =namespaceParts[i];

?? ?//如果當(dāng)前命名空間下不存在,則新建一個(gè)Object對(duì)象,等效于一個(gè)關(guān)聯(lián)數(shù)組。

?? ?if (!rootObject[currentPart])???? ?{

????? ?rootObject[currentPart]=new Object();

?? ?}

?? ?rootObject =rootObject[currentPart];

}

}

以上JS命名空間的方式似乎已經(jīng)過時(shí)了,那我們?cè)賮砜纯蠢胘s對(duì)象字面量的方式來實(shí)現(xiàn)js的命名空間。

var school = {addClass:function(classnum){console.log(classnum);},addStudent:function(stuId){console.log(stuId);} } school.addClass("2");

以上就是采用的對(duì)象字面量的方法

轉(zhuǎn)載于:https://www.cnblogs.com/alisayuan/p/4735791.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的js命名空间的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。