javascript中對象的概念是很普遍的,對象是是對象,數組是對象,函數也是對象,字符串其實也是對象。常見的對象創建方法有對象字面量、構造函數創建。我們先來看看對象的創建還有哪些更高級的模式。
一、命名空間模式
二、模塊模式
三、沙箱模式
四、鏈模式
?
命名空間模式
什么是命名空間模式咧?簡單的說就是為了避免出現過多的全局變量,將多個變量作為某一個全局變量的屬性存在。
比如:
function brother1(){};
function brother2(){};
這樣的兩個函數直接作為了window的屬性成為了全局變量,如果改成這樣:
var parent={};
parent.brother1=function(){};
parent.brother2=function(){};
兩個brother變成了一個全局變量的屬性,保護了全局變量不被污染。
命名空間模式的好處是:
1、減少全局變量污染,只建立一個全局變量,把其他的所有功能函數、變量放到這個全局變量下,適合庫的建立,比如jquery。
2、組織代碼更規范。
當然命名空間模式也有一些缺點:
1、更長的字符串名稱,每個變量和函數都需要有一個前綴,增加了代碼的大小;
2、長嵌套意味著更長的屬性解析時間。
通用命名空間函數
var MYAPP = MYAPP||{};
MYAPP.namespace=function(ns){var parts = ns.split("."),parent=MYAPP,i;if(parts[0]=="MYAPP"){parent=parts.slice(1); }for(i=0;i<parts.length;i++){if(typeof parent[parts[0]]=="undefined"){parent[parts[i]]={}; } parent=parent[parts[i]]; }};
?