1

我处理一个字符串,并希望从函数中获取最终结果,以便下一个函数可以重用它。基本上,我目前的做法是这样的:

function pre_processing(str){
 str = str.replace(/\d/g, ""); // delete all digit (a simplier example than my code)
 return str;
}
function post_processing(){ 
 // do processing n⁰2 on var str
}
pre_processing("w0rd2");
console.log(str) // fails! Uncaught ReferenceError: str is not defined 
post_processing(str); // fails, haven't input

这不起作用。我做错了什么?return做得不对,还是与异步 JS 有关?其他 ?2. 怎么做才对?

完整的 JS 代码:http: //jsfiddle.net/hugolpz/CYwD3/7/(我尽可能简单)

4

3 回答 3

5

然后该函数等于该返回值,因此:

var str = pre_processing("w0rd2");
于 2013-11-06T19:36:22.670 回答
2

您的“pre_processing”函数返回一个字符串,但您没有注意返回值:

var str = pre_processing("w0rd2");

现在您在函数之外有一个名为“str”的变量。

当然,您可以将第二个函数直接应用于第一个函数的结果:

console.log( post_processing( pre_processing("w0rd2") ) );
于 2013-11-06T19:37:57.123 回答
1

你必须在它返回时将它分配给一个 var ,因为该函数现在已经假定了评估的值,所以

var newStr = pre_processing("w0rd2");

另外,用这个缩短你的功能

return str.replace(/\d/g,"");

代替str = str.replace(/\d/g,""); return str;

最后

var newStr = post_processing(newStr);
于 2013-11-06T19:38:45.817 回答