有关匿名函数执行与传参

$(document).ready(function(){

  var box = function(){
    return 'abcd1';
  }; //将匿名函数赋值给变量,不执行函数,此时box是函数指针

  alert(box());//通过函数指针调用函数


  (function(){alert('abcd2');})(); //匿名函数的执行,将function(){alert('abcd2');}看着函数体,
  //后面的()是给匿名函数传递的参数

  var box = (function(){ //将匿名函数的执行结果赋值给box
    return 'abcd3';
  })();
  alert(box);//abcd3

  (function(age){ //自执行匿名函数的传参,因为后面的()是给匿名函数传参,所以将100传递给age
    alert('age:'+age);
  })(100); //100



  function box1(){
    return function(){
      return 'abcd4';
    }
  }
  alert(box1); //box1 为函数名,函数名保存的值为整个函数体的内容

  function box2(){
    return function(){
      return 'abcd5';
    }
  }
  alert(box2());// 执行函数box2,将返回的结果打印,返回的结果是一个匿名函数,而且该匿名函数不会执行,所以结果是匿名函数体

  function box3(){
    return function(){
      return 'abcd6';
    }
  }
  alert(box3()());//box3()执行函数box3,返回的结果是一个匿名函数,box3()()执行匿名函数,将返回的结果打印,返回的结果是字符串

});

原文地址:https://www.cnblogs.com/xiaocheng123/p/6074266.html