前端Javascript面试题

来源:互联网 发布:惠普hp m1136的端口 编辑:程序博客网 时间:2024/05/16 06:51
     今天有群里的朋友面试完了回来问了我一道题。代码如下
 var test = (function(a) {      this.a = a;     return function(b) {          return this.a + b;      } } (function(a, b) {      return a; }(1, 2)));   console.log(test(4)); //输出什么

     这道题还算比较基础,答案应该是5,下面的立即执行函数返回了一个值1,又作为参数传给了test对应的立即执行函数,又由于该函数返回了一个闭包,所以this.a得以保存,依然是b,此时调用test(4)相当于是给闭包函数传参4,所以b=4,结果1+4=5。

     个人理解,如果大家有其他的面试题或者对这道题还有别的看法欢迎与我分享、交流!

1 0