为了账号安全,请及时绑定邮箱和手机立即绑定

js新人小白求解答

js新人小白求解答

慕的地8487277 2018-07-17 16:12:34
var cal = counter(); cal(); // num=0 cal(); // num=1 function counter(){   var num = 0;   function add(){     return num++;   }   return add; }为什么第二个cal()里num等于1?不是也是0吗?如果counter()改成这样:function counter(){   var num = 0;   function add(){     return num++;   }   return add(); } console.log(counter()); // 返回0为什么console返回的是0?不应该是1吗?
查看完整描述

3 回答

已采纳
?
klivitamJ

TA贡献5条经验 获得超4个赞

第一个是返回指向改方法的指针,指针的方法指向同一个作用域。而第二个则是立即执行方法,如果想要变成1,要么 num++; return n;当然也可以改成++n;

查看完整回答
2 反对 回复 2018-07-18
?
慕少3274410

TA贡献20条经验 获得超10个赞

你可以这么认为:return add = add ++ ;

其次就是你对 ++ 在前和 ++ 在后的理解;

去到网上看一下 ++ 前后的区别。

查看完整回答
反对 回复 2018-07-18
?
Nyears

TA贡献35条经验 获得超10个赞

你可以看一下js i++ ++i的区别

查看完整回答
反对 回复 2018-07-18
  • 3 回答
  • 0 关注
  • 1439 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信