面试官:js函数传参是值传递还是引用传递?

24 阅读1分钟

答案是值传递: object对象被直接赋值其实会改变引用地址,新的obj和原来的入参毫无关系,

const obj = {
  a: 1,
  b: 2,
}
function a(obj, objb) {
  if (objb) {
    obj = objb
  }
  obj.a = 4 // 此处修改不会影响传入的obj对象
  obj.c = 5
}
}
// a(obj)
// console.log(obj) // {a:4,b:2,c:5}
a(obj, {d:6})
console.log(obj) // {a:1,c:2}