js匿名函数作为函数参数详解

良哉 2019-05-06

由衷的感叹,js真是烦。

学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长。

继承,多态,甚至指针,c能实现,c++,java有,javascript(和java是雷锋和雷峰塔的区别,名字上不知道坑了多少人)也能变通实现。

温故知新,今天又回味了一遍,匿名函数作为函数参数。

代码很短,五脏俱全。

<!DOCTYPE html>
<html lang="en">
 <head>
 </head>

 <body>
  <script>
  function test( a, b ){
  	a+=1;
  	b(a);
  }

 test(3, function(result){
  	console.log(result);
  });

  </script>
 </body>
</html>

匿名函数作为函数参数,为什么可以自动执行呢?

难道匿名函数自执行了?

错!!!匿名函数!=自执行匿名函数

真相只有1个:匿名函数作为参数,在调用(将匿名函数作为参数的)函数里被调用执行了。

function test( a, b ){
  	a+=1;
  	// b是对象,函数名也是对象,所以b可以指代一个函数
  	// 类似c++中的函数名一样
  	// a被复制给了b(result)
  	// js好灵活
  	b(a);
  }

相关推荐