将立即执行匿名函数返回给变量和直接赋值比,有什么用途?

今天看到一个写法
var a = (function() {return 'hello world'})()
这种写法与
var a = 'hello world'
比有什么优点

阅读 2.6k
3 个回答
  1. 函数里的用的变量不会暴露到外面。
  2. 函数里可以随时 return ,有时可以帮你省烦人的 if else

如果只是单纯的返回hello word没啥优点
但是如果是要经过一系列操作再返回还不想多出一堆全局变量就要用到立即执行匿名函数了
主要用到局部作用域

 var a = (function() {
        var a = 'hellow';
        var b = 'world';
        return a+b;
    })()

这个很好解释,想一个场景,如果你的程序是按照不同浏览器进行区分的,a 这个变量是不同浏览器下不同的值,

var a = (()=>{
    if(/* chrome */) return 'chrome';
    /* 其他的 if */
})()

当然,这样的写法和如下的写法一样

const whatBrower = ()=>{
    if(/* chrome */) return 'chrome';
    /* 其他的 if */
}
a = whatBrower()

但是下面这张写法占用了 whatBrower 这个变量,如果这个方法仅会执行一次,那么这个方法单独出来的意义也不大,所以第一种方式是常用的方式。

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