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誰給了這個想法做一個簡短版本的代碼,這是更容易測試和玩,我明天會給你答案,因爲我今晚沒有時間 –