重用函数参数变量是不是一种糟糕的做法?
const reformat = (phone)=>{
phone = phone.replace("-", ",")
//... more operation using phone
return phone;
}有什么理由应该避免这样的重用吗?或者继续这样的使用总是安全的?
发布于 2021-09-15 14:14:08
对于字符串,就像您的示例中一样,这是很好的。有些人可能会认为,如果您尝试调试该变量并在更改后将其记录到控制台中,这可能会让人感到困惑,但这主要是主观的。使用你的最佳判断力。
对于总是通过引用传递的对象,您应该避免在函数中进行更改,因为这些更改也会出现在函数之外。
例如:
var myObject = {
message: "Hello, world"
};
function alertMessage(msgObj){
msgObj.message = "Hello moto";
alert(msgObj.message);
}
alertMessage(myObject);
// The object has changed.
console.log(myObject);
发布于 2021-09-15 14:17:19
不,不是。它有时会节省内存,因为当你使用另一个新变量时,它会占用你的内存。而且函数的过程要长得多,因此进行许多转换将不是一个好的做法。所以根据你的问题,
发布于 2021-09-15 14:26:45
需要注意的不同情况:
// argument is not a reference ( string, numbers )
function add_5(num)
{
num += 5
return num
}
let initial_num = 10
let returned_num = add_5(initial_num )
console.log( `initial_num-> ${initial_num}, returned_num-> ${returned_num}`)
// argument is reference ( objects )
function directArgObj( obj)
{
obj.num += 5
}
let initial_obj = { num: 10, abc:'xyz' }
directArgObj(initial_obj )
console.log( `initial_obj-> ${JSON.stringify(initial_obj)} `)
https://stackoverflow.com/questions/69194723
复制相似问题