zoukankan      html  css  js  c++  java
  • 在外部函数外调用内部函数

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

    代码如下:

     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>

    运行结果:

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

     

  • 相关阅读:
    设计模式(三):装饰模式
    实战pythoninstagram
    设计模式(二):观察者模式
    instagram 的api研究
    设计模式(四):代理模式
    设计模式(五):工厂模式
    qq微博oauth认证记录
    js 处理json数据记录
    17Django高级之Auth
    20Django高级之信号
  • 原文地址:https://www.cnblogs.com/ChenMM/p/9412202.html
Copyright © 2011-2022 走看看