1

私はJavaScriptがあまり得意ではありません。その場で設定を設定するために使用できるビルド構成クラスを作成しようとしています。アイデアは、実行される環境を渡してから、変数を適切に設定することです。私は次のものを持っています:

function BuildConfig(){  
    this.build = 'html5';
    this.server = 'http://someurl',
    this.nfc = true,
    this.barcode = true,
    this.scheduler = true,
    this.getConfig = function(buildType){  

     switch(buildType)
        {
        case "ios":
            this.build = 'ios';
            this.server = 'http://someurl';
            this.nfc = true;
            this.barcode = false;
            this.scheduler = false;
            break;
        case "android":
            this.build = 'android';
            this.server = 'http://someurl';
            this.nfc = false;
            this.barcode = true;
            this.scheduler = false;
            break;
        case "websiteanonymous":
            this.build = 'websiteanonymous';
            this.server = 'http://someurl';
            this.nfc = true;
            this.barcode = false;
            this.scheduler = true;
            break;
        case "website":
            this.build = 'website';
            this.server = 'http://someurl';
            this.nfc = true;
            this.barcode = true;
            this.scheduler = false;
            break;

        default:

        }

    };  
}; 

これは大丈夫ですか?何か改善はできますか?

ありがとう

4

2 に答える 2

1

あなたのアプローチは大丈夫です。そして、以下のコードは少し短いです:

function BuildConfig(type) {
    // Defaults
    this.build = 'html5';
    this.server = 'http://someurl';
    this.nfc = true;
    this.barcode = false;
    this.scheduler = false;

    switch (type) {
        case "ios":
            this.build = 'ios';
            this.scheduler = true;
            break;

        case "android":
            this.build = 'android';
            this.server = 'http://anotherurl';
            this.nfc = false;
            break;

        case "websiteanonymous":
            this.build = 'websiteanonymous';
            this.server = 'http://otherurl';
            this.barcode = true;
            break;

        case "website":
            this.build = 'website';
            break;
    }
}

var config = new BuildConfig('android');
于 2012-05-26T01:04:48.980 に答える
0

繰り返しすぎているようです。すべての場合(デフォルトを除く)、同じ値の値があります。

        ...
        this.server = 'http://someurl';
        this.nfc = true;
        this.barcode = true;
        this.scheduler = true;
        ...

私はすることをお勧めします:

  • フラグ変数を作成し、それを使用して変更を適用します
  • または、自動的に変更を行い、元に戻しますcase default
于 2012-05-26T00:39:27.617 に答える