关于立即执行函数的问题

!function (){
  var local = 1
  function bar (){
    local++
    return local
  }
  return bar
}.call()

bar()

为什么这个bar是undefined呢?

阅读 1.4k
3 个回答

bar 是在函数内部,使用function声明的,所以在全局中检测不到,改用window.bar = function(){}就可以了

最后,那个return是迷惑人的,因为没有接收的变量,在函数外使用变量bar接收,bar也能运行

在函数里面返回了bar?函数里bar就是undefined啊.
你的意思是返回bar函数把.

简单的函数 闭包原理,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题