为什么此函数会影响JS范围之外的非全局变量?

时间:2018-11-12 09:35:53

标签: javascript execution

我有以下代码:

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中,这不会发生,没有发生是有道理的,但是在这里发生,这意味着我不了解一些基本概念。我在做什么错了?

0 个答案:

没有答案