在外部函數外調用內部函數


在外部函數之外直接調用內部函數:

代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
 7         <script>
 8             function outFunction(){
 9                 console.log("外部函數被執行了");
10                 function innerFunction(){
11                     console.log("內部函數被執行了");
12                 }
13             }
14             $(function(){
15                 innerFunction();
16             })
17         </script>
18     </head>
19     <body>
20     </body>
21 </html>

運行結果:

報錯原因:

  內部函數的作用域在外部函數內,所以,內部函數只能在外部函數內被調用。

在外部函數內調用內部函數:

代碼如下:

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
 7         <script>
 8             function outFunction(){
 9                 console.log("外部函數被執行了");
10                 function innerFunction(){
11                     console.log("內部函數被執行了");
12                 }
13                 innerFunction();
14             }
15             $(function(){
16                 outFunction();
17             });
18         </script>
19     </head>
20     <body>
21     </body>
22 </html>

運作結果:

 

 

內部函數成功被調用。

在外部函數之外調用內部函數,把內部函數 賦值給一個全局變量

 代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
 7         <script>
 8             //定義一個全局變量
 9             var n;
10             function outFunction(){
11                 console.log("外部函數被執行了");
12                 function innerFunction(){
13                     console.log("內部函數被執行了");
14                 }
15                 n = innerFunction;//把內部函數賦值給全局變量n
16             }
17             $(function(){
18                 outFunction();
19                 console.log("以下是全局變量調用內部方法:");
20                 n();
21             });
22         </script>
23     </head>
24     <body>
25     </body>
26 </html>

 

運行結果:

 

在這里,全局變量n相當於面向對象的委托,當把內部函數賦值給全局變量時,調用委托方法就會調用內部函數。

在外部函數之外調用內部函數,把內部函數賦值給一個變量:

 代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
 7         <script>
 8 
 9 //            在外部函數之外調用內部函數,把內部函數賦值給一個變量:
10             
11             function outFunction(){
12                 console.log("外部函數被執行了");
13                 function innerFunction(){
14                     console.log("內部函數被執行了");
15                 }
16                 return  innerFunction;
17             }
18             $(function(){
19                 
20                 console.log("先把外部函數賦值給變量");
21                 var temp = outFunction();
22                 console.log("再執行外部函數變量");
23                 temp();
24                 
25             });
26         </script>
27     </head>
28     <body>

 

運行結果:

 

 

在這里,我們可以看到,內部函數不僅可以賦值給全局變量,還可以賦值給局部變量。

 

 


免責聲明!

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



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