Javascript 我如何在函数中设置一个var,并使它在所述函数之外保持不变?

Javascript 我如何在函数中设置一个var,并使它在所述函数之外保持不变?,javascript,Javascript,我想基于单击设置一个变量,然后基于另一次单击增加该变量 $("#set-1").click(function() { var x = 1; }); $("#set-2").click(function() { var x = 2; }); $("#set-3").click(function() { var x = 3; }); //... $("#increment").click(function() { x = x + 1; }); 但是当我点击#increment,x不

我想基于单击设置一个变量,然后基于另一次单击增加该变量

$("#set-1").click(function() {
  var x = 1;
});
$("#set-2").click(function() {
  var x = 2;
});
$("#set-3").click(function() {
  var x = 3;
});
//...
$("#increment").click(function() {
  x = x + 1;
});

但是当我点击
#increment
x
不再被定义。如何使它保持定义状态,即使在定义它的函数之外?

只需在外部声明它:

varx;
$(“#set-1”)。单击(函数(){
x=1;
});
$(“#set-2”)。单击(函数(){
x=2;
});
$(“#set-3”)。单击(函数(){
x=3;
});
$(“#增量”)。单击(函数(){
++x;
});
varx;
$(“#set-1”)。单击(函数(){
x=1;
});
$(“#set-2”)。单击(函数(){
x=2;
});
$(“#set-3”)。单击(函数(){
x=3;
});
$(“#增量”)。单击(函数(){
++x;
});
$('body')。单击(函数(){
$('#x')。文本(x);
});

设置x=1
设置x=2
设置x=3
增量x

x=未定义

,但当我单击#increment时,x被设置为1,无论我之前单击了什么#set-x div。@JoeMorano只在外部声明
x
,而不是在内部和外部声明。否则,本地的
x
将与外部的不同。@JoeMorano您可以使用
var x。那么它的值将是
未定义的
。但是,如果在设置任何值之前单击“增量”,则
undefined+1
将再次生成
NaN
@JoeMorano:仅在外部声明
x
,而不是在内部和外部声明。否则,本地
x
将与外部不同。