我想知道如何在我的js文件中缩短它们。我有这么多类似的代码。我已经重复了这个,如果函数一次又一次也必须重复其他函数。唯一改变的是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();
};
};
答案 0 :(得分:2)
使用函数指针!
function Uida(fn) {
if (uida == '234' || uidb == '4563') {
fn();
} else {
stop();
};
}
function Buy() {
Uida(Mission);
};
function Start() {
Uida(Doclick);
};
function ReBuy() {
Uida(Yesdo);
}
当然,您需要将Uida
函数重命名为更具描述性的内容:)
答案 1 :(得分:0)
你可以试着让它们都调用一个类似的函数并传递一个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;
}
}
无论如何,这就是理论,给我一分钟,我会看看我是否可以整理一下。 (ternary)
这是一个快速jsfiddle。