JavaScript:如何在函数外部将文本框输入值存入外部对象?
解决方案:将输入值存入外部共享对象
当然可以实现这个需求!核心思路就是在两个函数都能访问到的作用域里定义一个外部对象,把输入值存储到这个对象中,这样另一个函数就能直接读取它了。
具体实现步骤:
定义共享的外部对象
把这个对象放在全局作用域(或者包含两个函数的父作用域,比如模块作用域)里,确保点击函数和另一个需要取值的函数都能访问到它:// 全局作用域或共同父作用域定义的外部对象 const sharedData = { userInput: '' };修改点击函数存入值
不用在函数内保留变量y,直接把输入框的值赋值给外部对象的属性:function myclickFnt() { document.getElementById("myinit").style.display = "block"; // 直接存入外部对象 sharedData.userInput = document.getElementById("dataset").value; }其他函数读取值
另一个需要使用该值的函数,直接从这个外部对象中读取即可:function anotherFunction() { const inputValue = sharedData.userInput; // 在这里使用读取到的输入值做操作 console.log("存储的输入值:", inputValue); }
原理说明
这个方案可行的原因是:外部对象处于两个函数的共同作用域中,它不会随着myclickFnt函数执行完毕而被销毁,而是会一直存在于内存中,直到页面卸载或者主动清理,所以其他函数随时可以访问它的属性。
很高兴看到你已经通过相关链接解决了这个问题!上面的方案也是这类跨函数共享数据需求的常规实现方式,供其他遇到类似问题的开发者参考。
内容的提问来源于stack exchange,提问作者burrito
相关产品推荐
相关产品推荐

