JS函數后面的小括號用法


f()意思是執行f函數,返回子函數

f()()執行子函數,返回孫函數

f()()()執行孫函數

()()表示定義並執行,使用時不用再單獨調用執行了

但注意,如果想這樣執行,函數結構必須是這樣,f的函數體里要return 子函數,子函數里要return 孫函數,如果沒有return關鍵字,是不能這樣連續執行的,會報錯的。

舉個例子:k是f的子函數,return子函數k,所以f()()能連續執行。

 1 <script>
 2     var i=1;
 3     function f(){
 4         i++;
 5         console.log("-------------  :  "+i)
 6         return k;
 7         function k() {
 8             return "I love you!"
 9         }
10     }
11     f();
12     console.log("111111111111");
13     f()();
14     alert(f()());
15 </scirpt>

結果如圖:

()()表示定義並執行,使用時不用再單獨調用執行了,當只有一個括號時:(function(){}),只是定義了一個函數不會執行,再加一個括號才會自己執行。

如下面:(function(){...} )(); 此函數是個無名函數可自動執行,f()() 是執行子函數返回孫函數 ,即執行第一個函數(括號)中的 function f(), 而第一個函數中又聲明了 function k() 及執行了k()

 1 <script>
 2 var i=1;
 3  (function f(){
 4         i++;
 5         console.log("-------------  :  "+i)
 6         // return k;
 7         function k() {
 8           console.log("------- :  "+i);
 9             return "I love you!"
10         }
11       k();
12   })();
13 </script>
14 
15 ----------或者---------
16 <script>
17 var i=1;
18  (function f(){
19         i++;
20         console.log("-------------  :  "+i)
21         // return k;
22        var two= function(){
23           console.log("------- :  "+i);
24             return "I love you!"
25         }
26       two();
27   })();
28 </script>---------不執行的反例--------只有一個括號(function(){};)
 1 <script>
 2 var i=1;
 3  (function f(){
 4         i++;
 5         console.log("-------------  :  "+i)
 6         // return k;
 7         function k() {
 8           console.log("------- :  "+i);
 9             return "I love you!"
10         }
11       k();
12   });
13 </script>

 參考文章:https://www.cnblogs.com/forforever/p/12372326.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM