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 回答