如何在页面加载函数中设置的onclick函数中干净地使用JS变量

我有一个我在运行的function

window.addEventListener('load', function() { var variable_name_1 = localStorage.getItem('var_1'); ... } 

我希望移动function,使其仅在用户单击按钮时运行,在此处:

 function maketempuser() { ... } 

我可以在需要时调用该函数。 但该function利用了负载函数中的大量变量。 是否有一种干净的方法来“全球化”这些变量? 或者我必须找到一些方法在html中添加所有这些变量:

 

注意:javascript将运行相同的文件,我只是不希望它每次用户重新加载页面时都保持重新运行,因为发生了ajax mysql插入,因为此页面是一行中的一个页面启用用户注册。

为了不使用大量变量污染全局范围(可以被其他应用程序覆盖),我建议您创建一个具有应用程序特定名称的对象,可能是这样的

 var myAppVar = {}; window.addEventListener('load', function() { myAppVar.var_1 = localStorage.getItem('var_1'); ... } 

只需在全局范围内定义它们:

 var variable_name_1; window.addEventListener('load', function() { variable_name_1 = localStorage.getItem('var_1'); ... } 

然而,这并不是一种特别健康的技术,因为它容易发生名称冲突。 最好的办法是拥有一个自定义对象( cO ,或者带有缩写,不太可能被其他任何东西使用)并将其用作所有自定义变量的占位符:

 var cS = { var_1:null // or some default value... }; window.addEventListener('load', function() { cS.var_1 = localStorage.getItem('var_1'); ... } 

由于localStorage已经是全局的,因此只需从处理程序中检索处理程序中所需的值。

 function maketempuser() { var variable_name_1 = localStorage.getItem('var_1'); } 

根本不需要在全局范围内添加任何额外的东西。