0
点赞
收藏
分享

微信扫一扫

js里调用函数时,函数名带括号和不带括号的区别


示例代码:

<span style="font-size:18px;">function hi(){  
var a = 1;
return function(){
console.log(a++);
};
};
var aaa = hi();
var bbb = hi;
</span>


​如以上代码:​​​​aaa​​ 是将 ​​hi()​​ 的运行结果赋值给它,即 ​​return​​ 返回的匿名函数,此时有一个闭包,则每次调用 ​​aaa​​ 时都访问的同一个 ​​a​​,​​aaa()​​ 第一次运行结果为 ​​1​​,第二次为​​2​

而 ​​bbb​​ 将是将 ​​hi​​ 这个函数名赋值给它,则调用 ​​bbb()​​ 后返回一个函数表达式,即​​function(){console.log(a++)};​

举报

相关推荐

0 条评论