2017-01-10 14 views
-1
var modularpattern = (function() { 
var sum = 0; 

return { 
    add: function() { 
     sum = sum + 1; 
     return sum; 
    }, 

    } 
}()); 
var c = modularpattern; 
c.add(); // 1 
var d = modularpattern; 
d.add(); // 2 but I want to be 1 
console.log(modularpattern.add()); // alerts: 3 

さらに多くのオブジェクトを持つことは可能ですか?私はプライベートフィールドを持っていたいが、同時にその1つだけのオブジェクトを持っている?他のオブジェクトにモジュールパターンを使用することは可能でしょうか

+0

結果はどのように見えるのですか? –

+0

@Nina Scholz c.add ==> 1 d.add ==> 1 console.log(..)==> 1 –

+0

これは問題をはっきりさせません。 –

答えて

-1

モジュールパターンを使用して、モジュールパターンを使用してさらに多くのオブジェクトを作成するファクトリを作成できます。

+0

うわー、真剣に? – Bergi

0

はい、これは、IIFE呼び出しを削除して通常の関数を取得すると簡単に可能です。 ファクトリパターンと呼ばれただけで、もうモジュールはありません。

function factory() { 
    var sum = 0; 
    return { 
     add: function() { 
      sum = sum + 1; 
      return sum; 
     } 
    } 
} 
var c = factory(); 
c.add(); // 1 
var d = factory(); 
d.add(); // 1 
console.log(c.add()); // logs: 2 
+0

それは唯一の方法です。 IIFEの呼び出しを使用する方法はありますか? –

+0

私は不必要ではないIIFEを使う方法を想像することはできません。 – Bergi

関連する問題