2013-02-05 131 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

相关问题