值未正确更改,变量相同

Values not changing correctly, same for variable

我正在制作一个小游戏(比如 cookie clicker,但是 CS:GO 版本),我必须开始学习 OOP,所以我对这种编程类型真的很陌生,有时会出现问题.

我很确定这是一个范围问题,但如何解决这个问题?

这是我的代码(我将进一步解释我的问题):

原型:

function amelioration(Class1, Class2, Nom, Nombre, Prix, Ajout1, Ajout2) {
    this.Class1 = Class1;
    this.Class2 = Class2;
    this.Nom = Nom;
    this.Nombre = Nombre;
    this.Prix = Prix;
    this.Ajout1 = Ajout1;
    this.Ajout2 = Ajout2;
}

    var glockClicker = new amelioration(".glockBtn .clickerUpgInpt1", ".glockBtn .clickerUpgInpt2", "glockClicker", 0, 20, 1, 1);

函数(有问题):

function buy(varAmelioration, Class1, Class2, Nom, Nombre, Prix, Ajout1, Ajout2, Multiplicateur) {
        if (euroCount >= Prix) {
            Nombre += 1;
            euroCount -= Prix;
            Prix *= Multiplicateur;
            euroPerSec += Ajout1;
            euroPerClick += Ajout2;
            $("#caseSpot .casePerSec").val(euroPerSec);
            $(Class1).val(Nombre);
            Prix = parseInt(Prix);
            $(Class2).val(Prix);
            varAmelioration = new amelioration(Class1, Class2, Nom, Nombre, Prix, Ajout1, Ajout2);
        }
    }

事件:

$(".glockBtn").click(function () {
        buy(glockClicker, ".glockBtn .clickerUpgInpt1", ".glockBtn .clickerUpgInpt2", glockClicker, glockClicker["Nombre"], glockClicker["Prix"], glockClicker["Ajout1"], glockClicker["Ajout2"], 1.5);
    });

所以现在你已经拥有了所有这些,这是我的问题。当我触发“事件”时,“原型”执行它的操作然后“函数buy()”也做它的事情。

但是当我第二次重新触发时“事件”没有任何改变,所有的值都没有改变(价格="Prix"是还是一样,等等......)我不明白为什么,我试图为变量“glockClicker”分配一个新值,你可以在“原型”但仍然没有改变值,我想帮助找出不正确的地方或帮助改变对象值的方法,就像它是一个变量一样。

我希望我说得够清楚,如果不只是告诉我你不明白的地方。

我的代码的简短版本:

function f(x) {
    this.x = x;
}
var a = new f(1);
console.log(f);

function b(myVar) {
    myVar += 1;
    console.log(myVar);
}

b(a["x"]);
console.log(a);
console.log(a["x"]);

b(a["x"]);
console.log(a);
console.log(a["x"]);

代码无效:

function f(x) {
this.x = x;
}
var a = new f(1);
console.log(f);

function b(myVar) {
    myVar += 1;
    console.log(myVar);
}

b(a["x"]);
console.log(a);
console.log(a["x"]);

b(a["x"]);
console.log(a);
console.log(a["x"]);

有效代码:

function f(x) {
this.x = x;
}
var a = new f(1);
console.log(f);

function b(myVar, val) {
    myVar[val] += 1;
    console.log(myVar[val]);
}

b(a, "x");
console.log(a);
console.log(a["x"]);

b(a, "x");
console.log(a);
console.log(a["x"]);