如何将JavaScript函数中的值传递给变量
解决函数值传递问题的方案
嘿,我来帮你搞定这个问题~你现在的问题核心是你的函数没有返回值,所以调用var display= functionThatNeedsRowsData();的时候,display拿到的只能是undefined——哪怕console.log(somevar)能打印出值,那也只是在控制台输出,不会把值传递给外部变量。
同步场景下的修改方法
只需要给函数加上return语句,把somevar的值返回出去,同时调用函数时别忘了传入values参数(不然somevar会是undefined):
function functionThatNeedsRowsData(values){ var somevar = values; // 控制台打印值 console.log(somevar); // 关键:添加return语句,把值返回给调用者 return somevar; } // 调用时传入实际需要的数据,比如这里传一个数组示例 var display = functionThatNeedsRowsData([1, 2, 3]); // 现在display就能拿到somevar的值啦 console.log(display);
异步场景的补充(如果函数涉及异步操作)
要是你的functionThatNeedsRowsData其实是处理异步任务(比如从后端获取数据、定时器操作),那单纯的return就不够用了,这时候可以用Promise配合async/await来处理:
// 模拟异步操作的函数 function functionThatNeedsRowsData(values){ return new Promise((resolve) => { // 这里用定时器模拟异步请求 setTimeout(() => { var somevar = values; console.log(somevar); // 异步完成后把值传递出去 resolve(somevar); }, 1000); }); } // 用async/await接收异步返回的值 async function getDisplayValue() { var display = await functionThatNeedsRowsData("异步数据示例"); console.log(display); } // 执行函数 getDisplayValue();
内容的提问来源于stack exchange,提问作者Markjames11
相关产品推荐
相关产品推荐

