我有以下代码:
function control_function() {
let data = { inputs: [ 'one', 'two'] };
level_one(data);
console.log(data);
} control_function();
function level_one(data) {
data.inputs.shift();
}
您会看到我正在输出data
,它应该还给我['one', 'two']
,相反它会给我['two']
,这意味着函数level_one
具有出于某种原因,它不应该访问的受影响数据(写入,它有权读取,因为我将其传递给了函数)。我向JS表示此let data
仅在control_function
范围内使用,并且不受其他功能的影响。
在PHP中,这不会发生,没有发生是有道理的,但是在这里发生,这意味着我不了解一些基本概念。我在做什么错了?