私のアプリケーションには、JSON ファイル (preferences.json) に格納された設定のリストがあります。好みに応じて選択的に使用したい、対応する機能のリストがあります。各関数の結果はレポートに追加されます。
Preferences.json は次のようになります。
{
"getTemperature": true;
"getHumidity": false;
"getPrecipitation": true
}
関数は、インポートしているモジュール (functions.js) にあります。彼らは次のようなものです:
var getTemperature = function(){
//retrieve temperature;
//append temperature to file;
}
var getHumidity = function(){
//retrieve humidity;
//append humidity to file;
}
var getPrecipitation = function() {
//retrieve precipitation;
//append precipitation to file;
}
これまでに試したこと、明らかに機能していないこと
var prefs = require('./preferences.json');
var funcs = require('./functions.js');
for (key in prefs){
if(prefs[key]) {
funcs.key(); // <- Doesn't work, b/c 'key()' isn't a function. But you get the idea.
}
}
これを達成する方法を知っている場合は、お知らせください。
私がまだ試していない 1 つのアイデア (コードのかなりの書き直しが必要になるでしょう) は、プリファレンス ダミー変数と共に関数を疑似クラスにネストすることです。次に、設定ファイルを使用して疑似クラスのインスタンスを作成します。私の考えでは、疑似クラスのインスタンスは設定をそのまま保持し、選択的な実行を各関数にハードコーディングできます (つまり、 if(myInstance.tempBool){myInstance.getTemperature()} )。ただし、さらに多くの機能があり、将来さらに追加する可能性があるため、反復したいと思います。
何かご意見は?