function animal(){
var species = new Array('Monkey', 'Dog', 'Cat');
for(i=0;i<species.length;i++)
{
document.writeln(species[i]);
}
}
如何在不修改species
函数的情况下向animal()
数组添加其他值?
答案 0 :(得分:1)
在不更改此函数的代码的情况下向数组添加值是不可能的,原因很简单,因为species
变量使用的是在函数范围内声明的局部变量。因此,外部代码不会看到此变量。除此之外,该数组的值是硬编码的。所以忘了它。无需触及功能实现就不可能。
答案 1 :(得分: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暗示的那样,如果可能的话,我也不会定义函数的局部数据。