• 在外部函数外调用内部函数


    在外部函数之外直接调用内部函数:

    代码如下:

     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>

    运行结果:

    在这里,我们可以看到,内部函数不仅可以赋值给全局变量,还可以赋值给局部变量。

     

  • 相关阅读:
    快速浏览教材《计算机科学概论》提问
    2020-2021-1 20201329 《信息安全专业导论》第一周学习总结
    《密码与安全新技术专题》第一周作业
    《网络攻防》准备阶段
    20175312 2018-2019-2 《Java程序设计》第10、11周学习总结
    20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告
    MyCP(课下作业,必做)
    20175312 2018-2019-2 《Java程序设计》第9周学习总结
    20175312 2018-2019-2 《Java程序设计》第8周学习总结
    20175312 2018-2019-2 实验二 面向对象程序设计 实验报告
  • 原文地址:https://www.cnblogs.com/ChenMM/p/9412202.html
Copyright © 2020-2023  润新知