var compare;
switch(type) { // В свич передаётся тип переменной
case 'number': // Если переменная число
compare = function(rowA, rowB) { // Тогда мы переменной compare присваиваем анонимную функцию
return rowA.cells[colNum].innerHTML - rowB.cells[colNum].innerHTML; // Которая возвращает разницу между ячейками rowA.cells[colNum] и rowB.cells[colNum]
};
break;
case 'string': // Если тип переменной строка
compare = function(rowA, rowB) { // Тогда мы переменной compare присваиваем другую анонимную функцию
return rowA.cells[colNum].innerHTML > rowB.cells[colNum].innerHTML ? 1 : -1; // Где если rowA.cells[colNum] больше rowB.cells[colNum] то функция возвращает 1, в противном случаи -1
};
break;
}