我有这样的功能:
getData = ->
$('body').data('key')
我有另一个函数,我想使用第一个函数来检查是否有一些数据。我想要写的是:
otherFunction = ->
if getData()
...do something...
然而,在我的测试中,语句if function()
将永远是真的,因为那里有一些东西(一个函数)。所以上面的方法不起作用。
什么是我在这里尝试做的最干净的方法,检查函数是否返回一些数据?
答案 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方法上有一个返回转义符。
获取数据是返回数据的对象还是方法?