如何将变量的值而不是引用传递到 Javascript 中的函数中

gbo*_*600 2 javascript

如果我使用下面的代码,警报会显示10。我想要它说5

var a = 5;
var b = document.getElementById("element").onclick = ()=>alert(a);
a = 10;
Run Code Online (Sandbox Code Playgroud)

如何创建一个事件侦听器,该事件侦听器使用变量创建时的,而不是使用稍后修改值时会更改的引用?

Bar*_*mar 5

Use an IIFE that captures the current value of a.

var a = 5;
document.getElementById("element").onclick = ((x) => ()=>alert(x))(a);
a = 10;
Run Code Online (Sandbox Code Playgroud)
<button id="element">Click</button>
Run Code Online (Sandbox Code Playgroud)