0

そのため、main.jsに関数があり、second.jsに配列が設定されている必要があるという厄介な状況に陥っています...

簡単に言えば、main.jsの関数は再利用可能であることが意図されています。

function chug()
{
    p1.innerHTML = st_a[0];
    p2.innerHTML = st_a[1];
    ...
}

ここで、「st_a」は次のように解決されることになっています:st_ +、この場合、その変数は「a」です。second.jsファイルであるという考えには、複数の配列(st_a、st_bなど)があり、必要に応じて、関連する配列を使用して段落要素(p1、p2など)を設定します。

何か案は?

4

2 に答える 2

2

st_[x] がグローバル変数の場合、 を使用window['st_a']して参照できます。したがって、次のようなものを使用できるはずです。

function chug()
{
    var arrid = 'st_'+'a';
    p1.innerHTML = window[arrid][0];
    p2.innerHTML = window[arrid][1];
    //...
}

または関数を使用して配列を取得します。

function getArr(id){
  return window['st_'+id];
}

second.js別の方法として、次のような「get」メソッドでコンテナ オブジェクトを使用することもできます。

var myArrays = {
  st_a: [],
  st_b: [],
  st_c: [],
  get: function(id){
    return this['st_'+id];
  }
  /* etc */
}

chug次のようになります。

function chug()
{
    var arr = myArray.get('a');
    p1.innerHTML = arr[0];
    p2.innerHTML = arr[1];
    //...
}
于 2012-04-06T08:05:37.057 に答える