js 把一个函数赋给一个变量时带括号与不带括号的区别
来源:互联网 发布:ubuntu 16.04 安装出错 编辑:程序博客网 时间:2024/05/16 07:32
function test(){ return "hello";}var aaa = test;console.log(aaa );console.log(aaa ());
第一种情况://function test(){return “hello”;} //此种写法是将函数赋值给变量,也就是将内存给这段函数的首地址赋值给变量
第二种情况://hello 此种写法是将函数的返回值赋值给变量
function hi(){ var a = 1; return function(){ console.log(a++); }; }; var aaa = hi();var bbb = hi;aaa();aaa();bbb();
这段代码中 aaa与bbb的区别是什么?
aaa 是将 hi() 的运行结果赋值给它,即 return 返回的匿名函数,此时有一个闭包,则每次调用 aaa 时都访问的同一个 a,aaa() 第一次运行结果为 1,第二次为2
而 bbb 将是将 hi 这个函数名赋值给它,则调用 bbb() 后返回一个函数表达式,即function(){console.log(a++)};
bbb就是hi本身,换句话说就是外层的function。bbb()的结果应该跟hi()的结果一样。
aaa是hi()调用之后返回的那个东西,也就是说它是里层的function,a是它闭包里面的一个对象。aaa()的调用结果是console.log(a++)。
总结:加括号是把函数执行后的值赋值给变量;不加括号是把函数本身赋值给变量
阅读全文
0 0
- js 把一个函数赋给一个变量时带括号与不带括号的区别
- js 把一个函数赋给一个变量时带括号与不带括号的区别
- JavaScript-js中把一个函数赋给一个对象时带不带括号的区别?
- JS函数中带与不带括号的区别
- js里调用函数时,函数名带括号和不带括号的区别
- js里调用函数时,函数名带括号和不带括号的区别
- 学习笔记:js里调用函数时,函数名带括号与不带括号的区别
- new带括号与不带括号的区别
- [转载]new带括号与不带括号的区别
- new带括号与不带括号的区别
- JavaScript 函数调用时带括号和不带括号的区别!!!
- JavaScript 函数调用时带括号和不带括号的区别
- JavaScript 函数调用时带括号和不带括号的区别
- 关于创建对象时带括号与不带括号的区别
- js中给函数传参函数时,函数加括号与不加括号的区别
- js中function的带括号和不带括号的区别
- javascript中函数调用带括号和不带括号的区别
- 类的实例化带括号与不带括号的区别
- numpy Broadcasting
- 会话cookie中缺少HttpOnly属性
- Unity shader 双面 + alpha 且正常受光
- Java中的知识点拾贝
- python捕获警告的方法
- js 把一个函数赋给一个变量时带括号与不带括号的区别
- 1430:梯田AGAIN
- SGISTL源码探究-queue配接器
- easyUI 文本框显示传入值的方法
- 怎么获取加载完的页面的源文件
- 链表面试题Java实现【重要】
- Host is not allowed to connect to this MySQL server解决方法
- 百度云提取码
- 鸡蛋栈