函数修改形参,能否影响实参?

运行以下代码,会输出什么

function changeArg(x) { x = 200 }

let num = 100
changeArg(num)
console.log('changeArg num', num)

let obj = { name: '双越' }
changeArg(obj)
console.log('changeArg obj', obj)

function changeArgProp(x) {
    x.name = '张三'
}
changeArgProp(obj)
console.log('changeArgProp obj', obj)

函数参数 - 赋值传递

function fn(x, y) {
    // 继续操作 x y
}
const num = 100
const obj = { name: '双越' }
fn(num, obj)
```

以上代码相当于

```js
const num = 100
const obj = { name: '双越' }

let x = num
let y = obj
// 继续操作 x y

解题

执行题目代码分别输出 `100  {name: '双越'}  {name: '张三'}`

扩展

eslint 规则建议:函数参数当作一个 `const` 常量,不要修改函数参数 —— 这样代码更易读

1

猜你喜欢

转载自blog.csdn.net/m0_38066007/article/details/124953184
今日推荐