Javascript 如何在jquery中声明和设置变量?
我有一个基本问题。在Jquery中,如果我声明一个变量并在函数中为其赋值,我如何维护这个更改?我以为它会覆盖它。请帮忙 这是我的意思的一个简单例子。警报框显示2,但如何在x中保存3Javascript 如何在jquery中声明和设置变量?,javascript,jquery,Javascript,Jquery,我有一个基本问题。在Jquery中,如果我声明一个变量并在函数中为其赋值,我如何维护这个更改?我以为它会覆盖它。请帮忙 这是我的意思的一个简单例子。警报框显示2,但如何在x中保存3 <script> var x=2 $(document).ready(function(){ (function(){ x=3; }); alert(x); }); </script> 变量x=2 $(文档).ready(函数(){ (功能(){ x
<script>
var x=2
$(document).ready(function(){
(function(){
x=3;
});
alert(x);
});
</script>
变量x=2
$(文档).ready(函数(){
(功能(){
x=3;
});
警报(x);
});
您编写的函数未被使用。试试这个
<script>
var x=2
$(document).ready(function(){
(function(){
x=3;
})();
alert(x);
});
</script>
变量x=2
$(文档).ready(函数(){
(功能(){
x=3;
})();
警报(x);
});
注意添加的括号,它在声明后立即调用函数
正在工作的JSFIDLE:
在您的示例中,由于x是在函数外部定义的,因此它被输入函数闭包,因此,如果您立即或稍后运行函数,它将更改在函数范围之外定义的x的值
关于自调用函数的说明:
您编写了一个函数表达式,但它不是函数表达式的一部分,因此无法执行。必须将
()
放在函数表达式之后才能执行它:
var x=2;
$(文档).ready(函数(){
(功能(){
x=3;
})();
警报(x);
});代码>
您创建了一个函数,但没有设置,也没有调用
请参见此处,如何设置和调用它:
var x=2
$(document).ready(function(){
var test = (function(){
x=3;
});
test();
alert(x);
});
或
您从未执行将x
设置为3的函数。window.x=3
将在任何地方为全球客户服务that@dandavis全球化首先是个坏主意。除非绝对必要,否则不要将变量附加到窗口
对象。@JonKoops:显然,我同意避免全局变量,但请注意,x
已经“附加”到OP代码中的窗口,我只是指出了这一点。这个答案解释得最好。
var x=2
$(document).ready(function(){
(function(){
x=3;
})();
alert(x);
});