JS函数传递参数是是按值传递


JavaScript在传参的时候只有一种传递方法那就是按值传递(来自红宝书第四版本)

函数在传递参数的时候会把实参的值拷贝过来一份,而基础类型数据值是存在内存中,在拷贝的时候会复制出来一份,而引用类型的值复制的时候只是浅复制,复制引用出来,所以当引用类型的值传递进函数中,在函数中改变这个引用类型的属性值的时候,函数外再去访问这个引用类型的值的时候也会改变;

代码参考

let obj = {

  name: 'qq'

function aa(obj){

  obj.name = 'wx'

aa(obj);

console.log(obj.name) // wx

相关