なぜ次のコードは変数aを1に増やさないのですか?プリミティブ値は、JavaScriptで値によって渡されますので初心者のためのJavaScriptの引数
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
なぜ次のコードは変数aを1に増やさないのですか?プリミティブ値は、JavaScriptで値によって渡されますので初心者のためのJavaScriptの引数
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
を行います。
値を更新するには、オブジェクトにa
を置き、オブジェクトが参照渡しされているという事実を利用することができます(ほとんどの場合、実際には参照のコピーが渡されますが、それを心配してください):
var obj = { a: 5 };
function abc(o){
o.a++;
}
abc(obj);
これは引数をとりますが、値を返しません。とき
yが、私は初心者の便宜上、この
var a = 10
function increase(){
a++
}
increase();
var a = 10;
function increase(a){
return a++;
}
a = increase(a);
ヒント:リストのコードの先頭には、各リストレベルの4つのスペースが必要です。したがって、この場合はコードの前に8桁のスペースが必要です。 –
次回は心に留めておきます – nivanka
を行うには、2つの方法、簡単な言葉で
を提案し、このためだけの引数でありますabc(a)による呼び出し関数の場合、 'a'は関数abcに渡されませんが、その値は 'y'にコピーされます。 (その値渡し)。 'y'だけが増加しているので、 'a'の更新値は表示されません。
これは私の答えの1番目のオプションと似ています – nivanka