js的链式调用

最近看到一个有关于js链式调用的问题,形如add(1)(2)(3)=6,研究了一下在此讲述

我们先来写一个简单的链式调用:

function add(x){

var sum=x;

function tem(y){

sum=sum+y;

return tem;

}

tem.toString=function(){

return sum;

}

扫描二维码关注公众号,回复: 6226082 查看本文章

return tem;

}

一个简单的链式调用函数到此完成,现在让我们来分析一下这个函数。

在外部调用add(1)(2)(3),此时会将第一个参数1传递给函数add即add(1),

进入到add函数内部,将x赋值给sum,然后继续执行,声明函数tem此时并未执行,

进入return语句,返回tem函数,此时调用tem函数,并将参数2传递给tem,该函数继续

返回tem函数本身,tem函数再次被调用并将参数3传递,直到没有参数可传递,结束函数执行,因为每次

返回的为一个函数,所以要用tostring方法,此方法返回对象的字符串形式。

猜你喜欢

转载自www.cnblogs.com/muhuck/p/10858791.html
今日推荐