2016-03-25 20 views
-1

Projemize bazı genel yardımcı işlevler gösterecek bir JS dosyası oluşturmaya çalışıyorum. Daha önce aşağıdaki iki modeli kullandım ama tamamen onlarla ikna olmadım.JS yardımcı program işlevlerini açığa çıkarmak için en iyi kalıbı belirleme

Model 1

var objUtils = { 
 
\t foo: function(){ 
 
\t \t //code 
 
\t }, 
 
\t bar: function(){ 
 
\t \t //code 
 
\t \t //foo can't be called 
 
\t } 
 
}

üzerinde desenli Sorun çapraz çağırmak çağırmak fonksiyonları olmayan olabilir.

Desen 2

var objUtils = (function(){ 
 
\t var foo = function(){ 
 
\t }, 
 
\t bar = function(){ 
 
\t } 
 
\t 
 
\t return{ 
 
\t \t foo : foo, 
 
\t \t bar : bar 
 
\t } 
 
})();

yukarıdaki desenli sorun ben emin olmak için var yeni işlev eklemek her zaman dönüş bloğuna eklemek bu yani açığa çıkarmak için, bir tür iş olduğunu hissediyorum.

Herhangi bir düşünce?

+2

'foo' gibi bar'' iç çağrılabilir 'this.foo()' sen gibi ararsanız 'objUtils.bar()' ES6 modüllerinden – elclanrs

+1

Named ihracat bir ve bu günlerde sadece doğru yol. – Bergi

+0

Bu aptalca, this.foo() 'ı denemedim. Gitme yolu. – NLV

cevap

1

JavaScript Modülü Kalıbı'nı kullanabilirsiniz. Açıklamak istediğiniz işlevlerle bir nesneyi oluşturun ve işlevlerinizi doğrudan bu nesneye ekleyin. Örneğin:

var objUtils = (function() { 
    var moduleObj = {}; 

    moduleObj.foo = function() { 
     // ... 
    }; 

    moduleObj.bar = function() { 
     // ... 
    }; 

    return moduleObj; 
}()); 
İlgili konular