【发布时间】:2016-06-01 11:05:07
【问题描述】:
我喜欢使用const 和switch 语句。
注意:以下只是一个简化的示例。每种情况下的代码都稍微复杂一些,返回的对象是一个 JSX 组件。
考虑一下:
let retval // can't declare as const!
switch (value) {
case 'a':
retval = 'aa'
break
case 'b':
retval = 'bb'
break
case 'c':
retval = 'cc'
break
case 'd':
retval = 'dd'
break
default:
retval = 'xx'
}
// mistakenly by purpose change retval here..
retval = function nope(){ return null }
但我确实想使用我的常量,比较一下:
const retval = (() => {
switch (value) {
case 'a':
return 'aa'
case 'b':
return 'bb'
case 'c':
return 'cc'
case 'd':
return 'dd'
default:
return 'xe'
}
})()
retval = null // nope you are safe here!, raises error
是否会造成不必要的开销? ...或者引擎会利用它吗?
【问题讨论】:
标签: javascript switch-statement ecmascript-6 iife