gpt4 book ai didi

javascript - 如果在函数中用作不能再更改的参数, foo 会变成什么?

转载 作者:行者123 更新时间:2023-12-02 18:56:50 25 4
gpt4 key购买 nike

我究竟将什么作为参数附加到函数 #1 中?一个新对象,一个字符串,还是其他东西?它看起来不像一个引用,因为更改 foo 没有任何效果。据我所知,bar1、bar2 和 bar 3 的行为完全相同。它们之间有区别吗?

foo = 5;

bar1 = (function(){return fooBar(foo);}()); // <--- #1
bar2 = (function(){return fooBar("5");}()); // <--- #2
bar3 = (function(){return fooBar(5);}()); // <--- #3

alert(bar1);
alert(bar2);
alert(bar3);

根据要求编辑 -> fooBar 函数

var p = 3;

function fooBar(n)
{
return (p*n);
}

foo = 5;
bar = (function(){return fooBar(foo);}());

alert(bar);

编辑2

function fooBar(n)
{
return (n[0]+n[1]);
}

foo = [20, 15];
bar = (function(){return fooBar(foo);}());

foo = [4, 565];

alert(bar); // 35

最佳答案

bar1 成为从 fooBar(foo) 返回的结果,即 fooBar(5) 并计算为 3* 5,最后15

并且因为这 3 个语句被编写为自调用函数 function(){ .... }(),因此在 bar1 = ... 之后更改 foo语句将不起作用,因为 foo 的值已经传递给它。

关于javascript - 如果在函数中用作不能再更改的参数, foo 会变成什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15259471/

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