Lac*_*ose 2 javascript coffeescript
在咖啡脚本中,在这样的函数上使用存在运算符:
myFunc?()
Run Code Online (Sandbox Code Playgroud)
编译成
typeof myFunc === "function" ? myFunc() : void 0;
Run Code Online (Sandbox Code Playgroud)
有没有办法优雅地定义代替"void 0"的内容?或者我必须全部写出来而不是使用原始符号吗?
您可以添加另一个存在运算符:
x = f?() ? 'pancakes'
Run Code Online (Sandbox Code Playgroud)
这是行不通的,如果f()收益null还是undefined但如果它会做正确的事f()的回报false.例如:
f = 'not a function'
console.log f?() ? 'pancakes'
# pancakes
f = -> 'is a function'
console.log f?() ? 'pancakes'
# is a function
f = -> null
console.log f?() ? 'pancakes'
# pancakes
f = ->
console.log f?() ? 'pancakes'
# pancakes
f = -> false
console.log f?() ? 'pancakes'
# false
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/ambiguous/f6yvN/1/
所以你可以接近你想要的东西,这可能足够接近,这取决于你期望函数返回的东西.
| 归档时间: |
|
| 查看次数: |
1357 次 |
| 最近记录: |