在Javascript中,您可以像下面这样重新分配变量:
var x = 10;
x+=10;
console.log(x);
//prints 20 to the console
但是,如果我再举一个看似相似的活动的示例,则会得到意外的结果:
var originalVar = 1;
changeMyVar(originalVar);
function changeMyVar(myVar) {
myVar += 1000;
return myVar;
}
console.log(originalVar);
//prints 1 to the console
我认为这是相同的。我将变量作为参数传递给函数。我正在该函数中重新分配值。然后我返回并打印该变量。突变在哪里?
最佳答案
作为函数参数的基元通过javascript中的值传递。因此,myVar
函数中的changeMyVar
不是引用originalVar
,而是引用值为originalVar
的新变量。