2013-02-05 67 views
1

我有一個返回字符串的函數,我需要多次調用該函數並將結果放入一個變量中。將從javascript函數返回的值賦給變量

我有這樣的:

function GetValue() { 
    ... Do Something ... 
    console.log(string); // displays 'string' 
    return string; 
} 

而且我試圖函數的輸出分配到另一個函數的變量。目前,我這樣做:

var theString = GetValue(); 
console.log(theString); // displays 'undefined' 

我不明白的是在功能控制檯輸出顯示值,但它分配變量函數的輸出後,事實並非如此。

很明顯,這不是將函數的輸出分配給變量的方法。那我該怎麼做?

[附加信息]

顯然,我在爲我的示例代碼短暫的嘗試只會造成混亂。

這裏是全功能的,我需要調用從其他地方多次在javascript文件:

/* 
* Build URL link 
*/ 
function BuildUrlTargetFolder() { 
    // Get the current url and remove the 'zipCodes/branchAdmin' part of it for the branch url link 
    var urlArray = window.location.href.split('/'), 
    targetLength = urlArray.length - 3, 
    i, 
    targetFolder = ''; 

    for (i = 0; i < targetLength; i++) { 
     // Only add a slash after the 'http:' element of the array 
     if (i === 0) { 
      targetFolder += urlArray[i]; 
     } else { 
      targetFolder += '/' + urlArray[i]; 
     } 
    } 

    console.log('targetFolder: ' + targetFolder); // console output is the current url minus two "levels" 

    return targetFolder; 
} 

下面是需要使用該函數的地方之一:

var targetFolder = BuildUrlTargetFolder(); 

console.log('targetFolder: ' . targetFolder); // console output: "undefined" 

// If the url has a value, set the href attribute for the branch link otherwise hide the url 
if (data['url'] !== '') { 
    $('a#branchLink').attr('href', targetFolder + '/index.php/coverage-area/' + data['url']).show(); 
} else { 
    $('a#branchLink').attr('href', '#').hide(); 
} 

所以,話說回來,我如何從分配給調用代碼變量的函數中獲取字符串?

+0

適用於我:http://jsfiddle.net/zzzHz/ –

+0

您的控制檯中是否有任何錯誤?如何創建'string'? GetValue是否在範圍內? –

+0

你想讓函數GetValue()的輸出成爲字符串的類型嗎?一般來說,我認爲你不應該把一個變量命名爲一個類型。考慮改變變量名'string'。 –

回答

3

的問題是這一行:

console.log('targetFolder: ' . targetFolder); // console output: "undefined" 

.應該是一個+

書面,你的代碼就相當於這樣做:

console.log('targetFolder'.targetFolder); 

換句話說,它的計算結果爲字符串的targetFolder財產「targetFolder」(強制轉換爲String實例) - 這是不確定的。

+2

面對巴掌!當你在PHP和JS之間切換太多時會發生這種情況! – marky

相關問題