如何在函数外部使用函数内的变量?JS代码问题求助
问题分析与解决
你的问题出在两个核心点:
- 函数内部的
list是局部变量,外部代码根本访问不到它 - 函数最后写了
return;,但没返回任何内容,调用makeList()等于白调用
修正后的代码方案
function makeList(){ var list = '<ul>'; var o = 0; while (o < files.length) { list = list + `<li><a href='/?id=${files[o]}'>${files[o]}</a></li>`; o++; } list = list + '</ul>'; return list; // 把构建好的列表字符串返回出去 } // 调用函数并接收返回值,再打印 var resultList = makeList(); console.log(resultList); // 也可以直接打印函数返回值 // console.log(makeList());
为什么这样改?
- 把空的
return;改成return list;,让函数执行完后能把构建好的结果传递出来 - 外部必须通过函数的返回值获取结果,因为函数内部的变量是局部作用域,外部无法直接访问
额外小优化(可选)
用let替代var,并简化字符串拼接写法,代码更规范简洁:
function makeList(){ let list = '<ul>'; let o = 0; while (o < files.length) { list += `<li><a href='/?id=${files[o]}'>${files[o]}</a></li>`; o++; } list += '</ul>'; return list; } console.log(makeList());
内容的提问来源于stack exchange,提问作者Null301
相关产品推荐
相关产品推荐

