JavaScript中的函数的两种定义方式和函数变量赋值

复制代码 代码如下:

  <!DOCTYPE html>

  <html>

  <head>

  <meta charset="UTF-8">

  <title>Insert title here</title>

  <script type="text/javascript">

  /*I总结:

  1.函数名可以做变量使用,可以赋值,可以传值

  2.函数名当参数,传递给另一个函数

  */

  //==================js中函数的两种定义方式和函数变量赋值================

  //在javascript中定义一个函数就可以理解成定义了一个变量

  //js中的变量时弱类型的哦。

  //----------1

  //function add1(){

  //alert("add1");

  //}

  //那么函数作为一个变量,就可以作为参数,是add1指向了这个代码块在内存中存储的首地址

  var add1=new Function("alert('add1');");//--------2

  //以上1,2的写法是完全等价的,是js中声明函数的两种方式

  //实际上,是add1指向了这段函数代码块,在内存中存储的首地址。

  //至于具体如何存储,堆或栈,这里不多做研究了。

  var addtt=add1;//函数名当变量使用,可以赋值,也可以传值

  //addtt 指向了函数体

  addtt();

  //==================js中函数的两种定义方式和函数变量赋值================

  //==================将函数变量作为参数传递===========================

  //基本格式:

  function add2(fun){

  //将函数名作为参数传递

  fun();

  }

  add2(add1);

  //--------------------------------------

  //函数名作参数使用,同时接受参数的情况演示的啦

  function add(a){

  return n+10;

  }

  //a:数字,fun:函数

  function addTest(a,fun){

  var t=fun(a);

  return t;

  }

  var tt=addTest(22,add);//这样的写法也是ok的啦

  alert(tt);

  //==================将函数变量作为参数传递===========================

  </script>

  </head>

  <body>

  </body>

  </html>