整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript 闭包函数传递参数

JavaScript 闭包函数传递参数

实现一个函数,运算结果可以满足如下预期结果:

 add(1)(2) // 3
 add(1, 2, 3)(10) // 16
 add(1)(2)(3)(4)(5) // 15

参考代码

 function add () {
 //将argument转换成数组
 var args=Array.prototype.slice.call(arguments);
 var fn=function () {
 //拼接多次调用的参数为数组
 var arg_fn=Array.prototype.slice.call(arguments);
 //递归调用add
 return add.apply(null, args.concat(arg_fn));
 }
 //最后一次返回fn时,自动调用valueOf
 fn.valueOf=function () {
 return args.reduce(function(a, b) {
 return a + b;
 })
 }
 return fn;
 }

思路流程

  1. 利用闭包传递参数,将参数每次调用中拼接成长数组。
  2. 改写valueOf函数,最后一次返回的fn,会自动调用valueOf函数,从而输出计算和

天做一个投票系统,弹出对话框,要在提交信息里包含被投票人的id号,但是又是在一个页面里弹出一个兑换狂没有转换页面,用js设置input值,
在页面中 onClick="show('要显示的div的id号,'要传递的参数值')"
在js页面设置
document.getElementById("input的id").value=传递过来的参数值;
从网上找的有
document.getElementById("input的id").value=传递过来的参数值.value;
但是不行