2 qq 32219139 qq_32219139 于 2016.05.06 12:58 提问

JS中匿名函数嵌套匿名函数

图片说明
求详细说明为什么其中test=3明白 然后匿名函数中的匿名函数怎么调用 如果还有fn(4)
fn(5) 为什么传入的都是b的值

2个回答

mazegong
mazegong   2016.05.06 15:33
已采纳

执行完fn(2)后,fn对应的function变了,变成
function(b){
console.log(test+b);
}
所以后面fn(3),fn(4),fn(n)都是执行function(b)这个函数

danielinbiti
danielinbiti   Ds   Rxr 2016.05.06 13:25
 执行完fn(2)后,fn对应的function变了,变成
 function(b){
    console.log(test+b);
 }
 所以后面fn(3),fn(4),fn(n)都是执行function(b)这个函数
qq_32219139
qq_32219139 回复danielinbiti: 谢谢 明白了
一年多之前 回复
danielinbiti
danielinbiti 回复qq_32219139: 对,这个fn是全局的,不是局部变量
一年多之前 回复
qq_32219139
qq_32219139 回复danielinbiti: 懂了 因为在fn函数中执行到test+=1的时候 fn重新赋值了 然后这个fn没加var 所以之后运行的都是后来赋值的function(b){ console.log(test+b); }这么理解对吗
一年多之前 回复
danielinbiti
danielinbiti 回复qq_32219139: fn重新赋值了
一年多之前 回复
danielinbiti
danielinbiti 回复qq_32219139: 因为执行fn(2)以后,fn变了,不在是function(test)了,而是function(b){ console.log(test+b); }了
一年多之前 回复
qq_32219139
qq_32219139 回复danielinbiti: 也就是说 为什么fn(2)的时候执行test+=1,而后面的所有fn(3),fn(4)都是指给形参b赋值
一年多之前 回复
qq_32219139
qq_32219139 回复danielinbiti: 就是test的值只变成3,后面再调用函数的时候 test的值不变了
一年多之前 回复
danielinbiti
danielinbiti 回复qq_32219139: 一次?什么意思
一年多之前 回复
qq_32219139
qq_32219139 为什么fn(2)只执行一次呢
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!