今天看到一个写法
var a = (function() {return 'hello world'})()
这种写法与
var a = 'hello world'
比有什么优点
今天看到一个写法
var a = (function() {return 'hello world'})()
这种写法与
var a = 'hello world'
比有什么优点
如果只是单纯的返回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 这个变量,如果这个方法仅会执行一次,那么这个方法单独出来的意义也不大,所以第一种方式是常用的方式。
8 回答6k 阅读✓ 已解决
9 回答9.4k 阅读
6 回答5k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10k 阅读
5 回答7.3k 阅读✓ 已解决
return
,有时可以帮你省烦人的if
else
。