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;

}

return tem;

}

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

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

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

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

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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM