如何在页面加载函数中设置的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'); }
根本不需要在全局范围内添加任何额外的东西。