返回信息流function fun(n,o){
console.log(o);
return {
fun:function(m){
return fun(m,n);
}
};
}
var a=fun(0); a.fun(1); a.fun(2); a.fun(3);
var b=fun(0).fun(1).fun(2).fun(3);
var c=fun(0).fun(1); c.fun(2); c.fun(3);
答案:undefined ,0,0,0
undefined ,0,1,2
undefined ,0,1,1
答案已经给出了 可是具体的原因有人可以给讲一下吗?[ema3]
这是一条镜像帖。来源:北邮人论坛 / java-script / #3632同步于 2018/2/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖
Js程序运行结果 求讲解
xiaopaofu
2018/2/24镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
这是一道基本题啊。
```js
function fun(n, o) { // 第一层
console.log(o) // 输出
return {
fun: function (m, n) { // 第二层
return fun(m, n)
}
}
}
```
注意第一层的和第二层里,第一层的第一个参数n在第二层里是第二个参数。而输出语句console始终输出的是第一层的第二个参数o。
搞清楚这个就很容易解释上面的答案了。
首先第一题
```js
var a=fun(0); // 执行 fun(0, undefined) -> console.log(undefined) 返回是fun: fun(undefined, 0)
a.fun(1); // 执行 fun(1, 0) -> console.log(0) 返回是fun: fun(undefined, 1)
a.fun(2); // 执行 fun(2, 0) -> console.log(0) 返回是fun: fun(undefined, 2)
a.fun(3); // 执行 fun(3, 0) -> console.log(0) 返回是fun: fun(undefined, 3)
```
其次第二题,可以拆解来看
```js
var b = fun(0) // 执行 fun(0, undefined) -> console.log(undefined) 返回是fun: fun(undefined, 0)
var c = b.fun(1) // 执行 fun(1, 0) -> console.log(0) 返回是fun: fun(undefined, 1)
var d = c.fun(2) // 执行 fun(2, 1) -> console.log(1) 返回是fun: fun(undefined, 2)
var e = d.fun(3) // 执行 fun(3, 2) -> console.log(2) 返回是fun: fun(undefined, 3)
```
最后第三题
```js
var c = fun(0).fun(1) // 执行第二题的第一步和第二步,输出undefined, 0 返回的是fun: fun(undefined, 1)
var d = c.fun(2) // 执行的是fun(2, 1) -> console.log(1) 返回的是fun: fun(undefined, 2)
var e = c.fun(3) // 执行的是fun(3 ,1) -> console.log(1) 返回的是fun: fun(undefined, 3)
```
最后一题不过是第一题和第二题的结合,拆解来看完全没有什么难度。
厉害了讲这么清楚lz怎么自己思考呢
【 在 PiEgg (皮蛋||八闽玲珑||独立开发||呵呵教大护法) 的大作中提到: 】
: [md]
: 这是一道基本题啊。
: ...................