我这里有一些代码Javascript问题。变量设置功能内,但功能外它不是
var F;
var favv= ['E','I','A','O','U'];
var i = 0;
function vowelcount(arg, favv)
{
for(i=0;i<favv.length;i++) {
c = 0;
V = favv[i];
for (j=0;j<arg.length;j++) {
if (arg[j].toUpperCase()===V) {
c++;
};
}
if (c>0) {
F=V;
return c;
}
}
}
var person1 = {name:"Super",spd:20};
var person2 = {name:"Supeer",spd:20};
function Scheck(person1, person2) {
if (person2.spd>person1.spd) {
var sub=person1;
person1=person2;
person2=sub;
} else if (person2.spd===person1.spd) {
var ct1 = vowelcount(person1.name, favv);
var ct2 = vowelcount(person2.name,F);
if (ct2 > ct1) {
var subp = person1;
person1= person2;
person2=subp;
}
}
console.log(person1);
console.log(person2);
}
Scheck(person1,person2);
console.log(person1);
console.log(person2);
这里我有元音,两个人的属性名称和社民党组成的数组。当我运行Scheck时,我想使用vowelcount来确定人们在速度统计相等的情况下会移动的顺序。如果您查看函数内的console.logs,它们会输出正确的名称......但是在函数后面,console.logs将显示原始顺序。为什么是这样?
JavaScript是按值传递的语言。 – Pointy
因为引用。 –
可能的重复:http://stackoverflow.com/questions/500431/javascript-variable-scope – ernie