2012-01-31 66 views
1

我想寫我的跨不同骨幹工程使用第一混入,而我只是想知道如何命名空間他們。骨幹混入:可重複使用的命名空間

總之,窗口。似乎是侵入性的,我不能命名空間他們在該項目下,因爲項目名稱的變化,我不能提供沒有命名空間,因爲他們只有在同一個文件內工作。

因此,簡而言之,我應該如何組織/命名空間我的混入,使他們在整個項目可贖回?

乾杯......

+0

你能否詳細說明您的混入的意思..你的意思是提供現有骨幹類的某些子類,或者用其他方法擴展核心骨幹班? – Ben 2012-02-07 09:25:09

回答

1

的標準方法是define a clean AMD-compliant module,然後使用工具像Require.js加載它在你的骨幹項目。這種方法不會污染全局名稱空間。如果你不想去的所有AMD,你可以在道格拉斯Crockford的書「的Javascript,好的部分解釋說:」使用該模塊的模式。它使用自調用函數來定義你的模塊,並返回暴露的對象(或函數)。不過,它確實需要全局名稱空間。該模式的一個很好的文檔是here。在其最簡單的形式,它看起來是這樣的:

var MODULE = (function() { 
    var my = {}, 
     privateVariable = 1; 

    function privateMethod() { 
     // ... 
    } 

    my.moduleProperty = 1; 
    my.moduleMethod = function() { 
     // ... 
    }; 

    return my; 
}());