我处理一个字符串,并希望从函数中获取最终结果,以便下一个函数可以重用它。基本上,我目前的做法是这样的:
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/ (我尽可能简单)
答案 0 :(得分:5)
然后该函数等于该返回值,所以:
var str = pre_processing("w0rd2");
答案 1 :(得分:2)
你的“pre_processing”函数返回一个字符串,但是你没有注意返回值:
var str = pre_processing("w0rd2");
现在你有一个名为“str”的变量函数。
当然,您可以直接将第二个函数应用于第一个函数的结果:
console.log( post_processing( pre_processing("w0rd2") ) );
答案 2 :(得分:1)
返回时必须将它分配给var,因为函数现在已经假定了评估的值,所以
var newStr = pre_processing("w0rd2");
此外,使用此
缩短您的功能return str.replace(/\d/g,"");
而不是str = str.replace(/\d/g,""); return str;
最后
var newStr = post_processing(newStr);