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

js的函数可以被引用,也可以作为参数和返回值。这是一种技巧,看下面的例子:

 

<html>
<head>
 <title>Example-6.12函数参数和函数返回值</title>
</head>
<body>
<script>
<!--
 function dwn(s)
 {
  document.write(s + "<br/>");
 }
 //集合变换操作,闭包作为参数
 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});  //得到2,3,4,5
 dwn(list);
 trans(list, function(x){return x*2});
 dwn(list);

 //累加器:闭包作为返回值
 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>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值