Skip to content

自运行函数

自运行函数的内部能否访问到外部的变量?

可以的,自运行函数根据作用域链可以访问外部的变量,而外部访问不了里面的局部变量。

自运行函数可以不用匿名函数?

可以不用,同样不会污染全局作用域,只是使用匿名函数是常见的做法。

自运行函数和把代码放到一个函数然后再运行有什么区别?

自运行函数其实是把代码放到一个函数(即放到一个命名空间里面),然后执行这个函数表达式。但是这种方式下,定义的这个函数会污染全局命名空间,所以使用自运行函数而不是定义一个函数。

自运行函数有什么缺点?

  • 不是js语言本身支持的模块化
  • 可读性、调试性变差

自运行函数有什么优点?

  • 隔离作用域、代码模块化。
  • 原始的js模块化方式兼容性好,目前第三方库umd格式的实现方式仍是自运行函数。