var e = 15;
function change_value(e){
e = 10;
}
change_value(e);
console.log(e);
e的价值仍然是15。
答案 0 :(得分:1)
当函数中有参数时,传递的值将复制到函数的范围内,并在函数完成时被销毁。
Javascript中的所有变量都是全局创建的,因此您只需使用和修改它而不传递它:
var e = 15;
function change_value(){
e = 10;
}
change_value();
console.log(e);
答案 1 :(得分:1)
功能范围内的e
与全局范围内的e
不同。
只需删除功能参数:
var e = 15;
function change_value(){
e = 10;
}
change_value();
console.log(e);
答案 2 :(得分:1)
javascript不使用简单类型的引用。它使用复制方法代替。所以你不能这样做。
你有2个解决方案。这样:
var e = 15;
function change_value(e) {
return 10;
}
e = change_value(e);
或者这个:
var e = 15;
function change_value() {
e = 10;
}
但请注意,此解决方案并非真正干净,只适用于此e
变量。
答案 3 :(得分:-1)
如果要将传递的值分配给外部e变量,可以执行此类操作。这只是一个样本。在块中,您将来可能有任何逻辑。
var e = 15;
function change_value(e){
return e;
}
e = change_value(10);
console.log(e);
但是如果你只想调用函数并更改e值,那么从函数中删除参数,因为它与外部函数的范围不同。
var e = 15;
function change_value(){
e = 10;
}
change_value(10);
console.log(e);