CoffeeScript:检查函数是否返回数据的最简单方法

时间:2012-11-07 05:36:05

标签: javascript jquery coffeescript

我有这样的功能:

getData = ->
  $('body').data('key')

我有另一个函数,我想使用第一个函数来检查是否有一些数据。我想要写的是:

otherFunction = ->
  if getData()
    ...do something...

然而,在我的测试中,语句if function()将永远是真的,因为那里有一些东西(一个函数)。所以上面的方法不起作用。

什么是我在这里尝试做的最干净的方法,检查函数是否返回一些数据?

2 个答案:

答案 0 :(得分:3)

如果没有数据属性,或者dom元素上存在空数据属性,则您的模式肯定会解析为false(因为返回值为假)。

请参阅此示例:http://jsfiddle.net/wkGcW/1/

getData = ->
  $('div').data 'key'

getData2 = ->
  $('div').data 'foo', 'bar'

otherFunction = ->
  if getData()
    console.log 'yep'
  else
    console.log 'nope'  <--- Resolves false

  if getData2()
    console.log 'yep'   <--- Resolves true
  else
    console.log 'nope'

otherFunction()

你可能还有其他一些问题......

答案 1 :(得分:0)

类似的东西:

if(getData() !== false) then do...

你需要在getData方法上有一个返回转义符。

获取数据是返回数据的对象还是方法?