我有两个 Javascript 函数,它们都使用 jquery-confirm ( https://craftpip.github.io/jquery-confirm/ ) 并包含非常相似的代码:
function cnf(cntn, fn) {
$.confirm({
title: "",
content: cntn,
confirmButton: "Yes",
cancelButton: "No",
confirm: function() { fn(); },
cancel: function() { }
});
}
function cnfprm(cntn, fn, prm) {
$.confirm({
title: "",
content: cntn,
confirmButton: "Yes",
cancelButton: "No",
confirm: function() { fn(prm); },
cancel: function() { }
});
}
我想知道是否可以通过创建另一个函数来封装这两个调用的相似之处来分解此代码,因此生成的代码类似于:
function cnf(cntn, fn) {
subfn(cntn, confirm: function() { fn(); });
}
function cnfprm(cntn, fn, prm) {
subfn(cntn, confirm: function() { fn(prm); });
}
...或者是否有另一种方法来分解代码?
最佳答案
只需使用这个功能:
function cnf( cntn, fn, optionalPrm ) {
$.confirm({
title: "",
content: cntn,
confirmButton: "Yes",
cancelButton: "No",
confirm: function() { fn( optionalPrm ); },
cancel: function() { }
});
}
当您不需要时,请将 optionalPrm
留空。由于它是未定义的,因此您的函数可能已经会忽略它无论如何。由于前两个参数相同,因此没有区别。如果第三个参数存在,那就太好了,否则,就好像它不存在一样。
关于javascript - 是否可以分解这些包含相似代码的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38898558/