2013-03-04 108 views
-2

我有這個類爲什麼這個類不返回false ||真正?

Class.V = function(v) { 
    if (v.BooleanValue == true) { 
     v.Success(); 
    } else { 
     v.Fail(); 
    } 

    return Class; 
} 

,我有一個按鈕,將執行一個函數,將返回true或false與形式PROCEDE與否。

<input type="submit" onclick="return check()" Value="Check" /> 


function check() { 
    Class.V({ 
     BooleanValue: true, 
     Success: function() { 
      return true; 
     }, 
     Fail: function() { 
      return false; 
     } 
    }) 

但它做的工作。這項工作,而不是:

function check() { 
    Class.V({ 
     o: true, 
     Success: function() { 
      results = true; 
     }, 
     Fail: function() { 
      results = false; 
     } 
     return results; 
     //now works as expected 
     }) 

爲什麼會發生這種情況?

+0

這是一個有點切,但我建議http://javascript.crockford.com – 2013-03-04 14:38:54

回答

1

根據您當前的代碼,你必須從你的外在功能傳播你的內部函數的返回值:

Class.V = function(v) 
{ 
    if (v.BooleanValue) { 
     return v.Success(); 
    } else { 
     return v.Fail(); 
    } 

    return Class; 
} 
+0

投票最多的Cuz這樣一個良好的明確和直接的描述,例如 – Misters 2013-03-04 15:38:50

0

需進一步恢復了v.Successv.Fail函數返回Class.V值:

if (v.BooleanValue) { 
    return v.Success(); 
    //^return here 
} else { 
    return v.Fail(); 
    //^and here 
} 
0

您將需要返回你的方法的價值:

Class.V = function(v) 
{ 
if(v.BooleanValue==true) 
{ 
    return v.Success(); 
} 
else{ 
    return v.Fail(); 
} 
} 
0

return隻影響當前的函數調用,而不是鏈。在您的第一個代碼塊中,return true;僅從匿名回調中返回。你必須傳遞它。事情是這樣的:

Class.V = function(v) { 
    return v.BooleanValue ? v.Success() : return v.Fail(); 
} 

function check() { 
    return Class.V({ 
     BooleanValue: true, 
     Success:function() { 
      return true; 
     }, 
     Fail:function() { 
      return false; 
     } 
    }) 
} 
+1

你需要的'return'在'return v.Fail();'如果你在像這樣的高等教育中使用它? – jbabey 2013-03-04 14:39:32

+0

不是,'return'適用於整個'?:'部分。 – 2013-03-04 14:42:41

相關問題