0
我做一个小游戏(如饼干唱首歌但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()”也是它的事情。
但是,当我重新触发第二次“事件”什么都没有改变,所有的值没有变化(价格=“大奖”还是一样,等...),我不明白为什么,我试图给变量“glockClicker”指定一个新值,您可以在“原型”中找到该变量,但仍不会更改这些值,我希望能帮助您找到哪些不正确的或有帮助的以改变一个objet的值,就像它是一个变量一样。
我希望我清楚,如果不是只告诉我你不明白什么。
短版的我的代码:
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"]);
你的问题可以重新:即工作
代码导致:函数f(x){x = 2; } var x = 1; F(X);的console.log(X); // 1'。 – melpomene
好的,我会给我的代码的简短版本 –
...好吧,我自己再次发现了这个问题,但多亏了melpomene谁给了这个想法做一个简短版本的代码,这是更容易测试和玩,我明天会给你答案,因为我今晚没有时间 –