2012-01-30 44 views
1

我收到一個錯誤,從函數傳回一個對象到調用函數。 我在做什麼錯?javascript:傳遞迴對象的錯誤

function stStartProcessing() 
{ 
    var returnValue = {}; 
    returnValue = srGetNextRecord(); // returnValue is undefined  
} 


function srGetNextRecord() 
{ 
    var returnValue = {}; 
    returnValue.addressToArray = "AAA"; 
    returnValue.sequence = "111"; 
    console.log(returnValue); // this works 
    return returnValue;   
} 
+0

這應該工作。請以http://jsfiddle.net/的鏈接發佈一個不起作用的示例。 – 2012-01-30 20:38:33

+0

我剛剛嘗試過(添加'return returnValue'來查看值),並且已經定義。您可以添加更多的細節,例如您使用的瀏覽器,或者David建議的一些可運行的測試代碼? – 2012-01-30 20:38:48

+0

我的不好。在我的代碼中(有點複雜),我遇到了一個排序問題。代碼應該像程序一樣工作。 – 2012-01-30 20:52:40

回答

0

必須有在你的代碼不同的問題,因爲你發佈什麼優秀作品。

下面修改的代碼顯示111。看到這個DEMO

function stStartProcessing() 
{ 
    var returnValue = {}; 
    returnValue = srGetNextRecord(); // returnValue is undefined -- no, it's not 
    console.log(returnValue.sequence); //shows 111 
} 


function srGetNextRecord() 
{ 
    var returnValue = {}; 
    returnValue.addressToArray = "AAA"; 
    returnValue.sequence = "111"; 
    console.log(returnValue); // this works 
    return returnValue;   
} 


stStartProcessing(); 

在一個單獨的說明,編寫JavaScript時,請進入把你開的習慣括號在同一線 - 總是。對於你上面什麼也不會有所作爲,但如果你這樣做:

function foo() 
{ 
    return 
    { 
     x: 1, 
     y: 2 
    }; 
} 

可怕的事情會發生,一個分號將被插入字return後,從而殺死你的返回值,並造成腳本錯誤。