面向初学者的javascript参数
为什么下面的代码不将变量a增加为1面向初学者的javascript参数,javascript,Javascript,为什么下面的代码不将变量a增加为1 var a =5; function abc(y){ y++; } abc(a); //a is 5 not 6 why? 但这是真的 var a = 5; function abc(){ a++; } abc(); //a is 6 因为在JavaScript中,原语值是通过值传递的 要获得要更新的值,您可以在对象上放置a,并利用对象是通过引用传递的这一事实(大多数情况下,确实传递了引用的副本,但我们不担心这一点): 因为在JavaS
var a =5;
function abc(y){
y++;
}
abc(a);
//a is 5 not 6 why?
但这是真的
var a = 5;
function abc(){
a++;
}
abc();
//a is 6
因为在JavaScript中,原语值是通过值传递的 要获得要更新的值,您可以在对象上放置
a
,并利用对象是通过引用传递的这一事实(大多数情况下,确实传递了引用的副本,但我们不担心这一点):
因为在JavaScript中,原语值是通过值传递的 要获得要更新的值,您可以在对象上放置
a
,并利用对象是通过引用传递的这一事实(大多数情况下,确实传递了引用的副本,但我们不担心这一点):
它接受参数,但不返回任何值 y只是一个论点我建议两种方法
它接受参数,但不返回任何值 y只是一个论点我建议两种方法 为了初学者的缘故 简单地说,当您通过abc(a)调用函数时,“a”不会传递给函数abc,而是将其值复制到“y”。(它被称为传递值)。因为只有“y”增加,所以您看不到“a”的更新值 看在初学者的份上
简单地说,当您通过abc(a)调用函数时,“a”不会传递给函数abc,而是将其值复制到“y”。(它被称为传递值)。因为只有“y”增加,所以您看不到“a”的更新值 格式化提示:列表中的代码必须为每个列表级别加上四个空格作为前缀。因此,在本例中,代码前面有8个空格。格式化提示:列表中的代码必须在每个列表级别的前面加上4个额外的空格。在本例中,代码前面有8个空格。
var obj = { a: 5 };
function abc(o){
o.a++;
}
abc(obj);
var a = 10
function increase(){
a++
}
increase();
var a = 10;
function increase(a){
return a++;
}
a = increase(a);