1

次のDygraphオブジェクトを作成しています。

function prime() {
  g = new Dygraph(
    document.getElementById("g"),
      data, //This is the variable I want to avoid passing in for older browsers
      {
      labelsDivStyles: { 'textAlign': 'right' },
      title: document.getElementById("title").value,
      titleHeight: 35,
      labelsSeparateLines: true,
      includeZero: true
      }
  );
}

そして、次のような「データ」を含めるかどうかを決定するブラウザチェックが必要です。

if(Browser.Version() > 8){
  //include data variable
} else{
  //don't include
}

他のケースに対処するための2番目の関数を作成する以外に誰かが何かアイデアを持っていますか

4

1 に答える 1

0

事前にオブジェクト リテラルを作成して操作するか、 valuenull / undefinedの間で三項演算子を使用する必要があります。

var myObj = {
    labelsDivStyles: { 'textAlign': 'right' },
    title: document.getElementById("title").value,
    titleHeight: 35,
    labelsSeparateLines: true,
    includeZero: true
};

if( Browser.Version() > 8 ) {
    myObj.data = 42;
}

また

function prime() {
    g = new Dygraph(
     document.getElementById("g"),
      data,
      {
      labelsDivStyles: { 'textAlign': 'right' },
      title: document.getElementById("title").value,
      titleHeight: 35,
      labelsSeparateLines: true,
      includeZero: true,
      data: Browser.Version() > 8 ? 42 : null
      }
  );
}

ジョブを実行してそのオブジェクトを返す自己呼び出し関数を選択することもできますが、それは例 #1 とほとんど同じです。いずれにせよ、オブジェクト リテラルを作成する際にキーを作成するか作成しないかを ECMAscript に指示することはできません。

于 2013-03-08T16:24:21.780 に答える