関数 #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