冷凝类似的功能

时间:2018-01-04 06:09:54

标签: javascript html

所以我要做的是转换一系列功能,如:

function classAClickSell(){
	if (classASupply>=1) {
		cash = cash + classAValue;
		document.getElementById("cash").innerHTML = cash;
		classASupply = classASupply - 1;
		document.getElementById("classASupply").innerHTML = classASupply;
	};
};

function classBClickSell(){
	if (classBSupply>=1) {
		cash = cash + classBValue;
		document.getElementById("cash").innerHTML = cash;
		classBSupply = classBSupply - 1;
		document.getElementById("classBSupply").innerHTML = classBSupply;
	};
};

我试图让它们全部类似于以下内容:

function ClickSell(class){
	if (class.concat('Supply') >= 1) {
		cash = cash + class.concat('Value');
		document.getElementById("cash").innerHTML = cash;
		class.concat('Supply')--;
		document.getElementById(class.concat('Supply')).innerHTML = class.concat('Supply');
	}
}

我想知道是否有办法做到这一点,我似乎无法找到一个。如果有人可以帮忙或指出我正确的方向,我将被存放。

2 个答案:

答案 0 :(得分:1)

试试这段代码:

function classClickSell(input, node) {
    if (input >= 1) {
        cash += input;
        document.getElementById("cash").innerHTML = cash;
        --input;
        document.getElementById(node).innerHTML = input;
        return input;
    };
};

classClickSell(10, "classASupply");

如果classASupply实际上是全局的,并且在函数调用之后需要一个可能的减量,那么你可以将它分配给上述函数的返回值,即

var classASupply = 10;
classASupply = classClickSell(10, "classASupply");

答案 1 :(得分:1)

你可以做这样的事情来访问变量,假设变量是全局的:

function classClickSell(cls){
    if (window["class" + cls + "Supply"] >= 1) {
        cash = cash + window["class" + cls + "Value"];
        document.getElementById("cash").innerHTML = cash;
        window["class" + cls + "Supply"] = window["class" + cls + "Supply"] - 1;
        document.getElementById("class" + cls + "Supply").innerHTML = window["class" + cls + "Supply"];
    };
};

有关您可能访问这些变量的其他方法,请参阅#1441532

不要将class用作变量/参数名称 - 它是保留的。