请大佬帮忙解释一下,执行顺序
是将add(10)指向了一个新函数吗,相当于temp(2)(4)(1),请大佬帮忙解答一下,谢谢了
不能讲指向,是返回了一个新函数
add(10)返回temp1,执行temp1(2),temp执行add(2)返回temp2,执行temp2(4),temp执行add(4)返回temp3,执行temp3(1),temp执行add(1)返回temp4,打印运行temp.toString
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.8k 阅读
由于作用域的关系,就是楼上说的,每次调用add都返回了一个新的temp,而不是同一个temp执行3次,实质上这个写法叫递归,只是他写的比较难懂而已,和一般说的链式调用没关系。
其实更多的情况来说,链式调用是一种“写代码的格式”而不是功能。例如
var a = -5.385; var b = Math.abs(a); var c = b.toFixed(2); console.log(c);
也可以写成var c = Math.abs(-5.385).toFixed(2)
。简单的也就罢了,复杂的链式写法是bug的重灾区,对于代码质量把控并不是好事。你听没听明白我不知道,但是我知道截图这样写代码会挨抽。