Javascript 这段JS代码是怎么回事?
我正在看Angular JS教程,它一直在使用这个代码片段的变体,但没有解释它Javascript 这段JS代码是怎么回事?,javascript,angularjs,Javascript,Angularjs,我正在看Angular JS教程,它一直在使用这个代码片段的变体,但没有解释它 (function(param, undefined){ //Normal function definition in here ... }(bar.foo = bar.foo || {})); 所以我得到的最多的就是这个。我认识到下面的代码是一个自动执行函数,用于封装javascript的一些部分,以避免范围污染 (function(param, undefined){ //Normal funct
(function(param, undefined){
//Normal function definition in here
...
}(bar.foo = bar.foo || {}));
所以我得到的最多的就是这个。我认识到下面的代码是一个自动执行函数,用于封装javascript的一些部分,以避免范围污染
(function(param, undefined){
//Normal function definition in here
...
});
但是我不理解函数定义后面加括号的语法
编辑
我明白括号里的意思。
我不明白的是函数定义后面有括号的语法:
function(…){…}(…)
如果定义了bar.foo,请使用它——如果没有定义,请使用此空对象({}
)
编辑-以适应新的澄清
它的位置意味着在执行函数之前,它将处理bar.foo赋值;类似于设置默认值。如果定义了bar.foo,请使用它——如果没有定义,请使用此空对象(
{}
)
编辑-以适应新的澄清
它的位置意味着在执行函数之前,它将处理bar.foo赋值;类似于设置默认值。如果定义了bar.foo,请使用它——如果没有定义,请使用此空对象(
{}
)
编辑-以适应新的澄清
它的位置意味着在执行函数之前,它将处理bar.foo赋值;类似于设置默认值。如果定义了bar.foo,请使用它——如果没有定义,请使用此空对象(
{}
)
编辑-以适应新的澄清
它的位置意味着在执行函数之前,它将处理bar.foo赋值;与设置默认值类似。这是一个需要参数的自动执行函数
bar.foo
是发送给它的参数(在使用函数时将是param
)。
如果bar.foo
在执行函数之前没有值,则将其设置为{}
,否则,将其设置为自身,然后传入
(函数(param1、param2、param3){
var ele=document.getElementById(“结果”);
ele.innerHTML+=“param1:”+param1;
ele.innerHTML+=“
”;
ele.innerHTML+=“param2:”+param2;
ele.innerHTML+=“
”;
ele.innerHTML+=“param3:”+param3;
ele.innerHTML+=“
”;
param3=param3 | |“香蕉”;
ele.innerHTML+=“更改后的param3:”+param3;
})(“苹果”、“橙子”)代码>
这是一个需要参数的自动执行函数bar.foo
是发送给它的参数(在使用函数时将是param
)。
如果bar.foo
在执行函数之前没有值,则将其设置为{}
,否则,将其设置为自身,然后传入
(函数(param1、param2、param3){
var ele=document.getElementById(“结果”);
ele.innerHTML+=“param1:”+param1;
ele.innerHTML+=“
”;
ele.innerHTML+=“param2:”+param2;
ele.innerHTML+=“
”;
ele.innerHTML+=“param3:”+param3;
ele.innerHTML+=“
”;
param3=param3 | |“香蕉”;
ele.innerHTML+=“更改后的param3:”+param3;
})(“苹果”、“橙子”)代码>
这是一个需要参数的自动执行函数bar.foo
是发送给它的参数(在使用函数时将是param
)。
如果bar.foo
在执行函数之前没有值,则将其设置为{}
,否则,将其设置为自身,然后传入
(函数(param1、param2、param3){
var ele=document.getElementById(“结果”);
ele.innerHTML+=“param1:”+param1;
ele.innerHTML+=“
”;
ele.innerHTML+=“param2:”+param2;
ele.innerHTML+=“
”;
ele.innerHTML+=“param3:”+param3;
ele.innerHTML+=“
”;
param3=param3 | |“香蕉”;
ele.innerHTML+=“更改后的param3:”+param3;
})(“苹果”、“橙子”)代码>
这是一个需要参数的自动执行函数bar.foo
是发送给它的参数(在使用函数时将是param
)。
如果bar.foo
在执行函数之前没有值,则将其设置为{}
,否则,将其设置为自身,然后传入
(函数(param1、param2、param3){
var ele=document.getElementById(“结果”);
ele.innerHTML+=“param1:”+param1;
ele.innerHTML+=“
”;
ele.innerHTML+=“param2:”+param2;
ele.innerHTML+=“
”;
ele.innerHTML+=“param3:”+param3;
ele.innerHTML+=“
”;
param3=param3 | |“香蕉”;
ele.innerHTML+=“更改后的param3:”+param3;
})(“苹果”、“橙子”)代码>
正在以(bar.foo=bar.foo | |{})作为参数触发函数。如果存在bar.foo,则函数将以bar.foo作为参数。如果它是未定义的(这是错误的),那么它将接受{}作为参数。我希望这有帮助 正在以(bar.foo=bar.foo | |{})作为参数触发函数。如果存在bar.foo,则函数将以bar.foo作为参数。如果它是未定义的(这是错误的),那么它将接受{}作为参数。我希望这有帮助 正在以(bar.foo=bar.foo | |{})作为参数触发函数。如果存在bar.foo,则函数将以bar.foo作为参数。如果它是未定义的(这是错误的),那么它将接受{}作为参数。我希望这有帮助 正在以(bar.foo=bar.foo | |{})作为参数触发函数。如果存在bar.foo,则函数将以bar.foo作为参数。如果它是未定义的(这是错误的),那么它将接受{}作为参数。我希望这有帮助 在函数声明后放置括号会立即启动对它的调用。这与这样做是一样的:
var fn = function () { ... };
fn();
因为函数声明的返回值是函数对象,并且在应用时