我有一个只有两个案例的开关案例,它们的代码差别很小。如何全局声明以最小化代码。
这是我的代码。
switch(clickedDataIndex){
case A :
var data = record.get(data1);
var Object = {
'AID':AID,
'BID':record.get(BID),
'CID':record.get(CID),
'DId' : record.get(D1),
}
if(data){
myFunction(Object);
}
break
case B:
var data = record.get(data2);
var Object = {
'AID':AID,
'BID':record.get(BID),
'CID':record.get(CID),
'DId' : record.get(D12),
}
if(data){
myFunction(Object);
}
break;
}
如果您在对象创建期间发现许多属性相同。有什么方法可以避免这种情况。
答案 0 :(得分:2)
您可以创建一个函数来减少代码重复,
function doProcess(data, aId, bId, cId, dId){
var data = record.get(data);
var Object = {
'AID': aId,
'BID':record.get(bId),
'CID':record.get(cId),
'DId' : record.get(dId),
}
if(data) myFunction(Object);
}
switch(clickedDataIndex) {
case 'A':
doProcess(data1, AID, BID, CID, d1);
break;
case 'B':
doProcess(data2, AID, BID, CID, D12);
break;
}
答案 1 :(得分:0)
调用单独的函数doAction()
<script type="text/javascript">
function doAction(Data, DId)
{
var data = record.get(Data);
if (data)
{
var Object = {
'AID':AID,
'BID':record.get(BID),
'CID':record.get(CID),
'DId' : record.get(DId),
}
myFunction(Object);
}
}
switch(clickedDataIndex)
{
case A :
doAction(data1, D1);
break;
case B:
doAction(data2, D12);
break;
}
</script>