2010-03-01 50 views
2

我使用着名的模塊模式來創建名稱空間,但是編寫ns1.ns2.member來訪問ns3(ns1.ns2.ns3)中的成員非常麻煩。 我不喜歡使用快捷方式var(_ns2 = ns1.ns2)爲此目的也聲明認爲有害,所以有什麼更好的處理這個問題? 是否可以合併命名空間的範圍或其他?謝謝。只是訪問其他名稱空間的成員

var NS1 = (function() 
{ 
    function $(id) 
    { 
     return document.getElementById(id); 
    }  

    return { 
     $: $ 
    } 
})(); 


NS1.NS2 = function() 
{ 
    function someFunc() 
    { 
     // Do not want the below one. 
     NS1.$('...'); 
     // Is there a way to access $ directly. 
     // without defining a variable for it here or using with statement. 
    } 
}(); 
+0

某些鏈接到描述這種據稱着名的「模塊模式」的材料可能會有所幫助。 – Pointy 2010-03-01 12:34:07

回答

0

我真的不知道你在說什麼,即使我使我相信我做的,我不明白這麼不好「ns1.ns2.ns3」,但這裏有一對夫婦思路:

(function(tempNamespace) { 
    blahBlah(tempNamespace.something, tempNamespace.somethingElse); 
    // ... 
})(ns1.ns2.ns3); 

或合併幾個:

的是什麼你與這些命名空間做的和我們多大碼的談論將是有益的一些描述。我發現一旦你開始使用類似jQuery的東西,即使對於大部分頁面—,即使客戶端行爲相當複雜,也需要大量的長期數據結構。

相關問題