我有类似的代码,我想知道是否有办法使它简短

I have similar code to this and im wondering if there is way to make it short

本文关键字:想知道 代码 是否      更新时间:2023-09-26

我想知道如何在js文件中缩短它们。我有很多类似的代码。我一遍又一遍地重复这个if函数,还必须重复else函数。唯一改变的是Mission()Doclick()和Yesdo()。如果有办法让它简短,请告诉我,谢谢。

function Buy() {
    if (uida == '234' || uidb == '4563') {
        Mission();
    } else {
        stop();
    };
};
function Start() {
    if (uida == '234' || uidb == '4563') {
        Doclick();
    } else {
        stop();
    };
};
function ReBuy() {
    if (uida == '234' || uidb == '4563') {
        Yesdo();
    } else {
        stop();
    };
};

使用函数指针!

function Uida(fn) {
    if (uida == '234' || uidb == '4563') {
        fn();
    } else {
        stop();
    };
}
function Buy() {
    Uida(Mission);
};
function Start() {
    Uida(Doclick);
};
function ReBuy() {
    Uida(Yesdo);
}

当然,您需要将Uida函数重命名为更具描述性的函数:)

您可以让它们都调用一个类似的函数,并传递一个uida参数,类似于以下内容:

// You could change the following 3 functions to have ternary statements
// eg: if ( uidaCheck() ) ? Function() : stop();
//
function Buy() {
    if ( uidaCheck() ) {
        Mission();
    } else {
        stop();
    }
}
function Start() {
    if ( uidaCheck() ) {
        Doclick();
    } else {
        stop();
    }
}
function ReBuy() {
    if ( uidaCheck() ) {
        Yesdo();
    } else {
        stop();
    }
}
function uidaCheck() {
    // uida assumed to be globally accessible var
    //
    if ( ( uida == '234' ) || ( uida == '4563' ) ) {
        return true;
    } else {
        return false;
    }
}

不管怎么说,这就是理论,给我一秒钟,我看看能不能整理一下。(三元)

这是一个快速的小提琴。