function animal(){
var species = new Array('Monkey', 'Dog', 'Cat');
for(i=0;i<species.length;i++)
{
document.writeln(species[i]);
}
}
如何在species
不修改animal()
函数的情况下向数组添加另一个值?
function animal(){
var species = new Array('Monkey', 'Dog', 'Cat');
for(i=0;i<species.length;i++)
{
document.writeln(species[i]);
}
}
如何在species
不修改animal()
函数的情况下向数组添加另一个值?
在不更改此函数的代码的情况下,不可能向数组添加值,原因很简单,因为在species
那里使用的变量是在函数范围内声明的局部变量。所以这个变量对外部代码是不可见的。除此之外,该数组的值是硬编码的。所以算了吧。不触及功能实现是不可能的。
我不确定我是否完全理解您的担忧,但与其他一些语言不同,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 暗示的那样,如果可能的话,我也不会定义函数的本地数据。