gpt4 book ai didi

javascript - Node 整数与对象中的函数范围?

转载 作者:行者123 更新时间:2023-11-30 11:22:28 24 4
gpt4 key购买 nike

<分区>

最近我在 node 中进行一些编程,我对函数中范围的处理感到有点惊讶。我被引导相信现在 ES6 范围更严格了。以下按预期工作:

function f(v){
v += 1;
return v;
}
let before = 1;
let after = f(before);
console.log(after); // This logs 2 (as expected)
console.log(before); // This logs 1 (as expected)

但是当我使用对象/字典做同样的事情时,变量的范围似乎超出了函数范围:

function f(v){
v.a += 1;
return v;
}
let before = {a: 1};
let after = f(before);
console.log(after.a); // This logs 2 (as expected)
console.log(before.a); // This also logs 2 (I was expecting this to still be 1)

为什么会这样?为什么 v 的范围在 int 时仅限于函数,而在它是对象时却没有?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com