JS命名空間的使用


在多人合作寫腳本的時候,會發生方法名沖突的情況

用JS的命名空間能解決這個問題

var MYNAMESPACE = MYNAMESPACE || {};

 若全局空間中已有同名對象,則不覆蓋該對象;否則創建一個新的命名空間。

下面就列出一個例子

var MYNAMESPACE = MYNAMESPACE || {};

MYNAMESPACE.person = function(name) {
    this.name = name;
};

MYNAMESPACE.person.prototype.getName = function() {
    return this.name;
};

// 使用方法
var p = new MYNAMESPACE.person("doc");
p.getName();        // doc

 上面的例子是別人博客的,下面寫一個自己自己寫的

有兩個人同時寫一個頁面,一個是DOC,一個ZXD,同時命名了一個hello方法

全局變量里也有一個hello方法

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>命名空間的用法</title>
    <script src="1.js"></script>
    <script src="2.js"></script>
    <script src="3.js"></script>
</head>
<body>
    
</body>
<script type="text/javascript">
    hello();
    DOC.hello();
    ZXD.hello();
    ZXD.getName("ZXD");
</script>
</html>

 1.js

function hello(){
    console.log(1);
}

 2.js

var DOC = DOC || {};

DOC.hello = function() {
    console.log("hello DOC");
}

 3.js

var ZXD = ZXD || {};

ZXD.hello = function() {
    console.log("hello ZXD");
}
ZXD.getName=function(name){
    console.log(name);
}

 輸出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM