1

私はこのような機能を持っています:

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

最初の関数を使用して、データがあるかどうかを確認する別の関数があります。私が書きたいのはこれです:

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

ただし、私のテストでは、if function()何か (関数) があるため、ステートメントは常に true になります。したがって、上記は機能しません。

ここで試みていることを行う最もクリーンな方法は何ですか?関数がデータを返すことを確認してください。

4

2 に答える 2

3

data 属性がない場合、または dom 要素に空の data 属性がある場合、パターンは間違いなく 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()

他の問題が発生している可能性があります...

于 2012-11-07T05:48:30.210 に答える
0

何かのようなもの:

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

getData メソッドにリターン エスケープが必要です。

get data はデータを返すオブジェクトまたはメソッドですか?

于 2012-11-07T05:40:25.353 に答える