js 函数作为参数及返回值的例子

来源:互联网 发布:linux中安装oracle11g 编辑:程序博客网 时间:2024/06/05 03:38

js函数可以作为参数也可以作为返回值,这也是闭包的一种用法。

看一下的例子:

 

<html>
<head>
 <title>Example-6.12函数参数和函数返回值</title>
</head>
<body>
<script>
<!--
 function dwn(s)
 {
  document.write(s + "<br/>");
 }
 //集合变换操作,闭包op作为参数
 function trans(list, op)
 {
   
  for(var i = 0; i < list.length; i++)
  {
   //根据闭包op计算每一个list[i]执行op后的结果,并用这个结果更新list[i]
   list[i] = op(list[i]);
  }
 }
 var list = [1,2,3,4];
 trans(list, function(x){return x+1}); 
 dwn(list);                                            //得到2,3,4,5
 trans(list, function(x){return x*2});  
 dwn(list);                                            //因为这时候list=[2,3,4,5]所以输出的是4 ,6 ,8 ,10

 //累加器:闭包作为返回值
 function add(a, b)
 {
  b = b || 0;
  var s = a + b;
  
  //返回一个供进一步累加的闭包。
  var ret = function(a){
   return add(a, s);
  }
  ret.valueOf = ret.toString = function(){
   return s;
  }
  return ret;
 }
 dwn(add(5)); //5
 dwn(add(5)(10)); //15
 dwn(add(5)(10)(20)); //35,这个闭包会执行两次
-->
</script>
</body>
</html>

输出结果是:

2,3,4,5
4,6,8,10
5
15
35

原创粉丝点击