溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript命名空間的作用

發(fā)布時(shí)間:2020-12-05 11:11:19 來(lái)源:億速云 閱讀:234 作者:小新 欄目:web開發(fā)

這篇文章主要介紹JavaScript命名空間的作用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

命名空間在英語(yǔ)中稱為namespace,它是編程中的概念之一,存在“命名空間”的概念可以避免名稱沖突。

命名空間是什么?

命名空間指的是一種排序機(jī)制,以便在“空間”中只有一個(gè)相同的名稱。

空間就像一種容器。

例如,名字“湯姆” 可能指的是多個(gè)人,但通過(guò)為每個(gè)姓氏創(chuàng)建命名空間,我們可以區(qū)分哪個(gè)“湯姆”。

事實(shí)上,你可以知道到命名空間“上官”中的“湯姆”和“歐陽(yáng)”中的“湯姆”是不同的人。

使用命名空間的好處

命名空間的主要目的是避免名稱沖突。

對(duì)于小規(guī)模程序,使用命名空間的好處可能不會(huì)太多。

但是,某種大規(guī)模的程序可能與其他程序,服務(wù)器等有關(guān)。

在這種情況下,使用命名空間可以減輕程序員的負(fù)擔(dān)。

由于可以防止名稱沖突引起的問題,我們可以消除不必要的處理。

如何使用命名空間?

讓我們?cè)贘avaScript程序中實(shí)際引入命名空間的概念。

首先,來(lái)看一個(gè)不使用命名空間的簡(jiǎn)單程序。

<html>
  <body>
    <script>
 
        function addition(num1,num2) {
            return num1+num2;
        }
 
        function multiplication(num1,num2) {
            return num1*num2;
        }
 
        var operation = addition(5,10);
        console.log(operation)
 
    </script>
  </body>
</html>

執(zhí)行結(jié)果:15

在上面的代碼中,我們首先定義了一個(gè)加法的函數(shù)addition和一個(gè)乘法的函數(shù)multiplication。

然后,添加結(jié)果存儲(chǔ)在全局變量中,并顯示在JavaScript控制臺(tái)中。

傳遞給函數(shù)所添加的參數(shù)是5和10,因此控制臺(tái)上顯示15。

在上面的代碼中,所有內(nèi)容都作為全局變量存在。

因此,如果全局范圍中存在具有相同名稱的函數(shù)和變量,則會(huì)導(dǎo)致沖突。

接下來(lái),我嘗試使用命名空間改進(jìn)上面的代碼。

<html>
  <body>
    <script>
 
        var MYFUNCTIONS = {
 
            addition: function(num1,num2){
                return num1+num2;
            },
 
            multiplication: function(num1,num2){
                return num1*num2;
            }
        } 
 
        var operation = MYFUNCTIONS.addition(5,10);
        console.log(operation)
 
    </script>
  </body>
</html>

執(zhí)行結(jié)果:15

在上面的代碼中,唯一定義的全局變量是一個(gè)大寫的MYFUNCTION變量。

在其中我們定義加法和乘法函數(shù)。

通過(guò)這樣做,我們創(chuàng)建了一個(gè)名為MYFUNCTION的空間,并在其中包含任意函數(shù)。

要在MYFUNCTION中調(diào)用函數(shù),使用語(yǔ)法:MYFUNCTION.函數(shù)名。

通過(guò)編寫MYFUNCTION.addition(5,10)來(lái)調(diào)用加法函數(shù)。

結(jié)果與前面的代碼相同。

如何對(duì)名稱空間進(jìn)行分層?

最后,我們來(lái)介紹一下如何“層次化”命名空間。

這樣會(huì)很方便,因?yàn)榭梢酝ㄟ^(guò)分層管理更多函數(shù)和變量。

代碼示例如下

<html>
  <body>
    <script>
 
        var MYAPPLICATION = {
 
            OPERATIONS: {
 
                addition: function(num1,num2){
                    return num1+num2;
                },
 
                multiplication: function(num1,num2){
                    return num1*num2;
                }
            },
 
            OTHER: {
 
                show: function(num1,num2){
                    console.log("Your numbers are " + num1 + " and " + num2);
                } 
            }
 
        } 
 
        MYAPPLICATION.OTHER.show(5,10);
 
    </script>
  </body>
</html>

執(zhí)行結(jié)果:Your numbers are 5 and 10

在上面的代碼中,我們將唯一的全局變量MYAPPLICATION分成多個(gè)空間。

在OPERATION空間添加了addition函數(shù)和multiplication函數(shù),在OTHER空間中包含了新的函數(shù)show。

在空間中創(chuàng)建空間使得分層和生成簡(jiǎn)潔代碼變得更加容易。

例如,要在OTHER空間中調(diào)用show函數(shù),可以使用外部空間,內(nèi)部空間和函數(shù)名稱等語(yǔ)法。

實(shí)際上,如果你編寫MYAPPLICATION.OTHER.show(5,10),將調(diào)用參數(shù)5和10中指定的show函數(shù)。

show函數(shù)將諸如“ Your numbers are參數(shù)1 and參數(shù)2 ”之類的短語(yǔ)輸出到JavaScript控制臺(tái)。

因此,結(jié)果顯示為Your numbers are 5 and 10。

以上是“JavaScript命名空間的作用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI