gpt4 book ai didi

javascript - coffeescript existential function operator else 语句?

转载 作者:行者123 更新时间:2023-12-03 17:02:57 24 4
gpt4 key购买 nike

在 coffee 脚本中,像这样在函数上使用存在运算符:

myFunc?()

编译为

typeof myFunc === "function" ? myFunc() : void 0;

有没有办法优雅地定义用什么来代替“void 0”?还是我必须全部写出来而不是使用原始符号?

最佳答案

您可以添加另一个存在运算符:

x = f?() ? 'pancakes'

如果 f() 返回 nullundefined,那将不起作用,但如果 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

演示:http://jsfiddle.net/ambiguous/f6yvN/1/

因此,您可以接近您想要的结果,并且这可能足够接近,具体取决于您期望函数返回的类型。

关于javascript - coffeescript existential function operator else 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10168623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com