2016-12-07 4 views
0

大規模なjsプロジェクトの書き直しでモジュラーアプローチに移行したいと思います。そして、これを管理するためにrequire.jsを使用したいと考えています。モジュラーjsでグローバル変数を扱う

しかし、私はグローバル変数を除去するためにどのように再コード化するのかを理解するのが難しいです。

だからここで、例えば、私が以前にrequire.js

define(function(){ 

    return { 

    somefunction: function() { 

     var local = global * 2; //still using global 
     console.log("local = " local); //output 


     }; 

     }; 

    }); 

ため

var global = 1; //define global 
somefunction(); //call function that uses global 

function somefunction(){ 
    var local = global * 2; //use global 
    console.log("local = " local); //output 
    }; 

と書き換えられていたどのように私は、グローバルにローカライズし、それが本当にモジュラーにするために、これを書き直します。

define(function(){ 
    var global = 1; // <============= 

    return { 

    somefunction: function() { 

     var local = global * 2; 
     console.log("local = " local); //output 


     }; 

     }; 

    }); 

あなたはglobalは、他のモジュールで使用する場合は、あなたがそれを置くだろう:globalのみそのモジュールによって使用されることを意図して、あなたがdefineコールバックの中に、それを定義すると仮定すると、

+0

'global'はそのモジュールによってのみ使用されることを意味していますか? –

答えて

0

それ自身のモジュールとモジュールを持っていますrequireそれ。私は、このスタイルのモジュールでは、オブジェクトプロパティ(ES2015モジュールを使用する必要がないこと)をオブジェクトのプロパティにする必要があることを意味します。

+0

ありがとうございます。私は多くを推測した。そして、グローバルを使用するすべてのモジュールはそれを必要としますか? – user3617712

+0

@ user3617712:これはいい考えです。グローバルを効果的に時代遅れにする –

関連する問題