javascript的對象建立模式---命名空間模式

javascript中對象的概念是很廣泛的,對象是是對象,數組是對象,函數也是對象,字符串其實也是對象。常見的對象建立方法有對象字面量、構造函數建立。咱們先來看看對象的建立還有哪些更高級的模式。javascript

1、命名空間模式java

2、模塊模式jquery

3、沙箱模式數組

4、鏈模式函數

 

命名空間模式spa

什麼是命名空間模式咧?簡單的說就是爲了不出現過多的全局變量,將多個變量做爲某一個全局變量的屬性存在。對象

好比:blog

function brother1(){};
function brother2(){};

這樣的兩個函數直接做爲了window的屬性成爲了全局變量,若是改爲這樣:ip

var parent={};
parent.brother1=function(){};
parent.brother2=function(){};

兩個brother變成了一個全局變量的屬性,保護了全局變量不被污染。字符串

命名空間模式的好處是:

一、減小全局變量污染,只創建一個全局變量,把其餘的全部功能函數、變量放到這個全局變量下,適合庫的創建,好比jquery。

二、組織代碼更規範。

固然命名空間模式也有一些缺點:

一、更長的字符串名稱,每一個變量和函數都須要有一個前綴,增長了代碼的大小;

二、長嵌套意味着更長的屬性解析時間。

通用命名空間函數

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]];   
    }

};
    
相關文章
相關標籤/搜索