在多人合作寫腳本的時候,會發生方法名沖突的情況
用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); }
輸出

