Javascript奇怪的变量连接/相互行为

时间:2013-12-29 13:16:21

标签: javascript jquery arrays variables

我一直在使用javascript进行编程(得到jquery的支持),我遇到了一些奇怪的变量行为,我认为这些行为确实出乎意料(或者我可能不知道)。

基本上,我想做的是让一个变量(zodziai)(数组)在代码的一部分中“填充”数组,然后通过单击按钮(逐个)删除这些数组。 / p>

此外,我仍然希望在游戏结束时保存这些数组,即使第一个变量是空的,因为按钮clicks.Easy,我想,所以我创建了另一个数组变量(zodziai2)和等同于游戏开始时(当第一个充满阵列时,准备将它们一个一个地移除。

在游戏结束时检查zodziai2(第二个变量)的值之前,一切似乎都很好。即使在从zodziai(第一个变量)中删除元素的整个过程中都没有触及它,但在游戏结束时它也会变得空洞。

代码:我在document.ready中声明了两个变量= [];

    $("#begin").click(function() {
        //#begin is a button which starts the game
        $("#enterwords").html("It's showtime!");
        zodziai2 = zodziai; //zodziai is full of stuff, making zodziai2 the same
        alert(window.zodziai2); //checking, zodziai2 seems to be equal to zodziai
        taskai = 0;
        maxtaskai = zodziai.length;

...

        if (zodziai.length > 0) {
            ... stuff, just DOM.
            ...
        }
    });

还有下一个按钮,它负责从zodziai数组中删除一个项目。不知怎的,它也从zodziai2中删除了。

 $("#next").click(function() {
        enword = $("#angliskas_zodis").val();
        ltword = $("#lietuviskas_zodis").val();

        //enword = enword.split("");
        //atitinkamas = atitinkamas.split(""); 

        if (enword == atitinkamas) {
...
            zodziai.remove(random_skaicius); // removing one item from zodziai (no worries, it's a self written function, working as a bee
...

           ...
    });

稍后,我定义了第三个按钮,重启,其中zodziai2现在为空,zodziai也是如此。如果代码只是与zodziai“玩”,zodziai2怎么能为空呢?我错过了什么?

$("#restart").click(function() {

    zodziai = zodziai2; //should be full of stuff, but is certainly not :(
    random_skaicius = 0;
    ilgis = 0;
    zodis = "";
    atitinkamas = "";
    tempzodislt = "";
    taskai = 0;
    maxtaskai = 0;
    klaidingi = [];

$("#angliskas_zodis").val("");
$("#lietuviskas_zodis").val("");


    surasymas(window.zodziai2);



        alertify.alert("Drop us a line if you think this function would be useful :)");




        });

1 个答案:

答案 0 :(得分:1)

只是一个指针。我看到你写一个声明zodziai2 = zodziai。这意味着两个变量都指向数组的相同内存位置。如果你从zodziai中删除一个元素,它也将从zodziai2中删除。这有帮助吗?