()()表示定义并执行,使用时不用再单独调用执行了,当只有一个括号时:(function(){}),只是定义了一个函数不会执行,再加一个括号才会自己执行。
如下面:(function(){...} )(); 此函数是个无名函数可自动执行,f()() 是执行子函数返回孙函数 ,即执行第一个函数(括号)中的 function f(), 而第一个函数中又声明了 function k() 及执行了k()
<script>
var i=1;
(function f(){
i++;
console.log("------------- : "+i)
// return k;
function k() {
console.log("------- : "+i);
return "I love you!"
}
k();
})();
</script>
----------或者---------
<script>
var i=1;
(function f(){
i++;
console.log("------------- : "+i)
// return k;
var two= function(){
console.log("------- : "+i);
return "I love you!"
}
two();
})();
</script>---------不执行的反例--------只有一个括号(function(){};)
<script>
var i=1;
(function f(){
i++;
console.log("------------- : "+i)
// return k;
function k() {
console.log("------- : "+i);
return "I love you!"
}
k();
});
</script>