3

我有一个返回字符串的函数,我需要多次调用该函数并将结果放入一个变量中。

我有这个:

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();
}

那么,话虽如此,我如何从分配给调用代码变量的函数中获取字符串?

4

1 回答 1

3

问题是这一行:

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

.应该是+一个.

如所写,您的代码等效于执行此操作:

console.log('targetFolder'.targetFolder);

换句话说,它计算为targetFolder字符串“targetFolder”的属性(强制为String实例) - 这是未定义的。

于 2013-02-06T00:29:15.333 回答