2009-12-19 25 views

回答

18

Javascript中沒有像C++那樣的命名空間的官方概念。但是,您可以用Javascript對象封裝函數來模擬名稱空間。例如,如果你想在「命名空間」稱爲MyNamespace編寫一個函數,你不妨做到以下幾點:

var MyNamespace = {}; 

MyNamespace.myFunction = function(arg1, arg2) { 
    // do things here 
}; 

MyNamespace.myOtherFunction = function() { 
    // do other things here 
}; 

然後,調用這些功能,你會寫MyNamespace.myFunction(somearg, someotherarg);MyNamespace.myOtherFunction();

我還應該提到在Javascript中有很多不同的方式來進行命名空間和類的事情。我的方法只是其中之一。

有關更多討論,您可能還想看看this問題。

+5

大寫的第一個字母通常意味着它是一個構造函數。改用'myNamespace'可能會更好。 –

+0

我認爲這只是個人編碼風格的問題,真的。我總是使用第一個字母作爲類名和構造函數。在這種情況下,'MyNamespace'充當一個類。 –

2

如果您指的是ECMAScript 6/JavaScript 2命名空間,那麼目前沒有JavaScript實現支持命名空間。

如果您指的是今天如何完成命名空間,那隻需要使用一個對象,並將想要定義的每個方法放到它上面。

var myNamespace = {}; 
myNamespace.foo = function() { /*...*/ }; 
myNamespace.bar = function() { /*...*/ }; 
相關問題