如何将prompt输入内容存入JS对象并在另一个prompt中回调展示
问题原因
- 你初始定义的
player对象被后续prompt()返回的字符串直接覆盖,原有对象结构丢失,无法正常访问对象属性 - 未对用户输入的名、姓做拆分存储,也没有生成可用的全名字段用于后续展示
- 第二个弹窗按需求仅需要展示全名,不需要重复获取用户输入
修复后可直接运行的代码
function user() { // 初始化存储用户信息的对象,内置fullName计算属性自动拼接全名 const player = { firstName: '', lastName: '', get fullName() { return `${this.firstName} ${this.lastName}`.trim(); } } // 第一次弹窗获取用户输入的名和姓 const inputName = prompt("要开始游戏请输入你的名和姓:"); if (inputName === null) { alert("游戏已取消。"); return; } // 拆分名和姓,兼容多空格、带中间名的输入场景 const nameParts = inputName.trim().split(/\s+/); player.firstName = nameParts[0] || ''; player.lastName = nameParts.slice(1).join(' ') || ''; // 第二次弹窗展示玩家全名,如不需要用户输入可替换为alert实现纯提示效果 prompt(`欢迎,${player.fullName}!我们现在开始游戏`); runGame(); }
补充说明
如果第二个弹窗仅做提示不需要用户输入内容,更推荐使用alert代替prompt,避免用户误修改弹窗内的展示信息。
内容的提问来源于stack exchange,提问作者Randy Cullins
相关产品推荐
相关产品推荐

