JavaScript函数多个小括号连续调用
分类:实例代码
JavaScript函数多个小括号连续调用属于前端实例代码,有关更多实例代码大家可以查看。
在实际应用中可能有类似如下方式的函数调用方式:
func(1)(2)(3)
这就是函数柯里化的表现形式(当然并不定有此形式的就是柯里化的函数),下面进行一下简单介绍:
柯里化又称部分求值,一个柯里化的函数首先会接受一些传参,接受了这些传参之后,函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数内形成的闭包中被保存起来,到参数被真正求值的时候,之前传入的参数会被一次性用于求值。
首先看一段代码实例:
function func(str) { var f = function(s){ return str+", "+s; } return f; } var str = func("antzone")("softwhy"); console.log(str);
上面的柯里化非常的不智能,如果我们需要连接三个字符串就无法正确实现了。
代码修改如下:
function func(str) { var ret = Array.prototype.slice.call(arguments).join(', '); var temp = function (str) { ret = [ret, Array.prototype.slice.call(arguments).join(', ')].join(', '); return temp; }; temp.toString = function () { return ret; }; return temp; } var tempFunc = func("antzone")("softwhy")("com"); console.log(tempFunc.toString());
上面的代码完美实现了字符串无限连接的功能。
关于JavaScript函数柯里化的更多内容可以参阅JavaScript 函数柯里化详解一章节。
JavaScript函数多个小括号连续调用,这样的场景在实际项目中还是用的比较多的,关于JavaScript函数多个小括号连续调用就介绍到这了。