zoukankan      html  css  js  c++  java
  • JavaScript ——内部函数和匿名函数

     在JS中,函数是一种数据类型,可以将它赋值给变量,因此函数可以这样创建:

    1 var func=function(){
    2       alert("func");      
    3 }
    4 func();

    既然函数是一种数据类型,那么同样可以将函数作为另一个函数的返回值:

    1 var func=function(data1){
    2     return function(data2){
    3         alert(data1+"这是一个内部匿名函数,被返回给变量func    "+data2);
    4     }
    5 }
    6 func(1)(2);   

    运行结果:“1这是一个内部匿名函数,被返回给变量func  2”

    上面代码中,func()()似乎有些奇怪,其实还有另一种形式:

    1 var func=(function(){     
    2     return function(){
    3          alert("这是一个内部匿名函数,被返回给变量func");
    4      }
    5 })();
    6 func();

    运行结果:“这是一个内部匿名函数,被返回给变量func   2”      注:因为最外层的function是一个匿名函数且没有赋值给其他变量,因此无法传值调用。

    结合这两种情况,会发现其实fun()()等价于(function(){return function(){alert ("这是一个内部匿名函数");}})()。

    理解清楚这一点,对于JavaScript中的闭包的理解会有好处!

  • 相关阅读:
    对象排序
    MYSQL连不上
    JS读取.properties文件的方法
    Jquery简单使用
    JSP中request获取值
    MYSQL修改字段
    配置文件读取
    spring注解
    Route@简单应用
    MVC客户端验证的小示例
  • 原文地址:https://www.cnblogs.com/GeoChen/p/5494823.html
Copyright © 2011-2022 走看看