我确信对此有一个简单的答案,尽管我只有 PHP 方面的经验。为什么当我将“pizza”数组作为“my_pizza”传递给我的函数并且只对“my_pizza”进行更改时,它会发生变化?如何将我传递给函数的原始数组保留在函数之外?一旦函数完成运行,披萨数组应该不会改变。我注意到如果我更改我的字符串变量(pie),它会在函数运行后保持不变,这与数组不同。
简而言之,我希望第一组结果与第二组结果相同。
var pizza = [];
pizza.push('crust');
pizza.push('ham');
var pie = "apple"
function bake_goods(my_pizza, my_pie){
console.log(my_pizza);
console.log(my_pie);
delete my_pizza['1'];
my_pie = "peach";
console.log(my_pizza);
console.log(my_pie);
}
//first run
bake_goods(pizza, pie);
//console logs
//['crust','ham']
//apple
//['crust']
//peach
//second run
bake_goods(pizza, pie);
//console logs
//['crust']
//apple
//['crust']
//peach