0
function animal(){
  var species = new Array('Monkey', 'Dog', 'Cat');
  for(i=0;i<species.length;i++)
  {
    document.writeln(species[i]);
  }
}

species関数を変更せずに配列に別の値を追加するにはどうすればよいanimal()ですか?

4

2 に答える 2

1

この関数のコードを変更せずに配列に値を追加することは不可能です。これspeciesは、そこで使用される変数が関数のスコープ内で宣言されたローカル変数であるという単純な理由によるものです。したがって、この変数は外部コードからは見えません。それに加えて、この配列の値はハードコーディングされています。だから忘れてください。機能実装に触れずにはいられない。

于 2012-07-15T16:25:06.560 に答える
1

あなたの懸念を完全に理解しているかどうかはわかりませんが、他の言語とは異なり、javascript は関数を完全に上書きできます。

したがって、上記のコードを想定すると、次のことができます。

window.animal = function(){
  var species = new Array('Monkey', 'Dog', 'Cat', 'Mouse', 'Fish');
  for(i=0;i<species.length;i++)
  {
    document.writeln(species[i]);
  }
}

とは言っても、私は の使用を避け、document.writeln()その関数はより悪いと考えていますeval()... また、Darin が示唆したように、可能であれば関数にローカルなデータも定義しません。

于 2012-07-15T16:29:09.247 に答える