如何在jquery中声明和设置变量?

时间:2015-04-28 21:50:29

标签: javascript jquery

我有一个基本问题。在Jquery中如果我声明一个变量并在函数内为它赋值,我该如何保持这种变化?我以为它会覆盖它。请帮助。

这是我的意思的一个简单例子。警告框显示2,但如何在x ??

中保存3
<script>
var x=2
$(document).ready(function(){
    (function(){
        x=3;
    });
    alert(x);
});
</script>

3 个答案:

答案 0 :(得分:2)

你写了一个函数表达式,但它不是IIFE的一部分,所以它没有被执行。您必须在函数表达式之后放置()才能执行它:

var x = 2;
$(document).ready(function() {
  (function() {
    x = 3;
  })();
  alert(x);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:1)

您使用的功能未使用。试试这个

<script>
    var x=2
    $(document).ready(function(){
        (function(){
            x=3;
        })();
       alert(x);
    });
</script>

注意添加的括号,它在声明后立即调用函数。

工作的jsfiddle:http://jsfiddle.net/nayish/x9kzefc2/

在你的例子中,因为x是在函数之外定义的,所以它被输入到函数闭包中,因此,如果你可以立即使用,或者稍后运行函数,它将改变在外面定义的x的值功能范围。

关于自调用函数的说明:

https://sarfraznawaz.wordpress.com/2012/01/26/javascript-self-invoking-functions/

答案 2 :(得分:0)

您创建了一个功能,但没有设置,也没有调用。

请参阅此处,如何设置和调用它:

var x=2
$(document).ready(function(){
    var test = (function(){
        x=3;
    });
    test();
    alert(x);
});

var x=2
$(document).ready(function(){
    (function(){
        x=3;
    })();
    alert(x);
});