Coffeescript运行函数或读取变量
说我有Coffeescript运行函数或读取变量,coffeescript,Coffeescript,说我有 msg = "Saved Successfully" 或 有没有什么方法可以优雅地获取msg的值,而不知道它是函数还是正则变量,而不是 success_message = if typeof msg is 'function' then msg() else msg 有一个咖啡脚本速记,你可以利用: f?() 相当于 f() if typeof f is 'function' 这意味着你可以写作 success_message = msg?() ? msg 这是因为如果msg不
msg = "Saved Successfully"
或
有没有什么方法可以优雅地获取msg的值,而不知道它是函数还是正则变量,而不是
success_message = if typeof msg is 'function' then msg() else msg
有一个咖啡脚本速记,你可以利用:
f?()
相当于
f() if typeof f is 'function'
这意味着你可以写作
success_message = msg?() ? msg
这是因为如果msg
不是函数,则msg?()
具有值undefined
警告:如果msg()
返回null
,将success\u消息设置为msg
函数,则此操作将失败
实际上,如果要在应用程序中执行此操作,应该编写一个实用函数:
toVal = (x) -> if typeof x is 'function' then x() else x
successMessage = toVal msg
如果你喜欢冒险,你甚至可以将toVal
附加到对象
原型上
toVal = (x) -> if typeof x is 'function' then x() else x
successMessage = toVal msg