Javascript 凝聚相似函数

Javascript 凝聚相似函数,javascript,html,Javascript,Html,所以我要做的是转换一系列函数,比如: 函数类aclicksell(){ 如果(类应用>=1){ 现金=现金+类别价值; document.getElementById(“现金”).innerHTML=现金; classASupply=classASupply-1; document.getElementById(“ClassAsuply”).innerHTML=ClassAsuply; }; }; 函数classBClickSell(){ 如果(类供应>=1){ 现金=现金+类别价值; doc

所以我要做的是转换一系列函数,比如:

函数类aclicksell(){
如果(类应用>=1){
现金=现金+类别价值;
document.getElementById(“现金”).innerHTML=现金;
classASupply=classASupply-1;
document.getElementById(“ClassAsuply”).innerHTML=ClassAsuply;
};
};
函数classBClickSell(){
如果(类供应>=1){
现金=现金+类别价值;
document.getElementById(“现金”).innerHTML=现金;
classBSupply=classBSupply-1;
document.getElementById(“classBSupply”).innerHTML=classBSupply;
};
};请尝试以下代码:

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");
请尝试以下代码:

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");

假设变量的作用域是全局的,则可以执行类似操作来访问变量:

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"];
    };
};
有关访问这些变量的其他方法,请参阅


并且不要使用
作为变量/参数名称——它是保留的。

假设变量的作用域是全局的,您可以这样做来访问变量:

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"];
    };
};
有关访问这些变量的其他方法,请参阅


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

首先不要将reserve关键字class用作ClickSell函数的参数首先不要将reserve关键字class用作ClickSell函数的参数全局范围是bad@Rajesh你们很多人想把这件事提出来。基于他们的问题,他们似乎想改变全局变量值,并将其压缩成一个函数。@Rajesh我同意。这个设计到处都是代码味道,但修复不在问题的范围之内。流血到全局范围是错误的bad@Rajesh你们很多人想把这件事提出来。基于他们的问题,他们似乎想改变全局变量值,并将其压缩成一个函数。@Rajesh我同意。这个设计到处都是代码味道,但修复不在问题的范围之内。