2017-08-12 7 views
0

私は関数内にあるので変数を持っています。今では、値を設定して外部から変数値を取得するためにinorderのような多くの変数があるかもしれません。私はsetを書いてすべてのprivate変数を取得しなければなりません。 javascriptには、すべてのプライベート変数(PrivateOneとPrivateTwo)を取得して設定する共通の機能がありますか?JavaScript Closuresですべてのプライベート変数の値を設定して取得する単一の関数を実装します。

 privateClosure = (function(){ 
     var PrivateOne; 
     var PrivateTwo; 
     setPrivate = function(VariableName,Value) 
     { 
     VariableName = Value; 
     } 
     getPrivate = function(VariableName) 
     { 
     return VariableName; 
     } 
     return{setPrivate,getPrivate}; 
     })(); 
     // I want to do something like this 
     privateClosure.setPrivate(PrivateOne,10); 
     privateClosure.getPrivate(PrivateOne); 
     privateClosure.setPrivate(PrivateTwo,20); 
     privateClosure.getPrivate(PrivateTwo); 
     //Only one Function for all the private variable in closure. 



    Is there anyway in javascript to have common function for getting and setting all private variable(PrivateOne and PrivateTwo). 
+1

あなたの質問から、正確に何を達成しようとしているのかは不明です。 –

+0

@TanveerBadar問題のコンテキストを更新しました。 –

答えて

1

あなた閉鎖地図ができます

var data = (function(){ 
    var lookup = new Map(); 

    return { 
    get(v){ 
     return lookup.get(v); 
     }, 
     set(a,v){ 
     return lookup.set(a,v); 
     } 
    } 
})(); 

だから、あなたが行うことができます:evalあなたがたいすべてのことを行いますがあり

data.set("a",1); 
alert(data.get("a")); 
0

は確か。

const privateVars = (function(){ 
    var privateOne; 
    var privateTwo; 
    return { 
     setPrivate(variableName, value) { 
      eval(`(v) => { ${variableName} = v; }`)(value); 
     }, 
     getPrivate(variableName) { 
      return eval(variableName); 
     }; 
    } 
}()); 

1:...とは、もちろん、totally unreasonableです。これを使わないでください。


あなたは

すべてのプライベート変数を取得および設定

のために何かをしたい場合、彼らはまったくのプライベートである理由しかし、私は疑問に思うし、あなただけのオブジェクトを使用していません公共の財産を持つ。

関連する問題