<html>
    <head>
        <title>dom</title>
        <script type="text/javascript">
            function generateCompareTRs(iCol)
            {            
         return function compare(tr1, tr2)
         {

         var v1 = tr1.cells[iCol].firstChild.nodeValue;
         var v2 = tr2.cells[iCol].firstChild.nodeValue;

         // 序号列,降序
         if(iCol == 0)
         {
             if(parseInt(v1) > parseInt(v2))
                 {return -1;}
             else if(parseInt(v1) < parseInt(v2))
                  {return 1;}
             else
              return 0;
         }
         // 姓名列,升序
         else
         {
             if(v1 > v2)
                 return 1;
             else if(v1 < v2)
                 return -1;
             else
              return 0;        
         }
         }; 
         }
          
         function sortTable(iCol)
         {
         var oTable = document.getElementById("tblSort");
         var oTBody = oTable.tBodies[0];
         var aRows = oTBody.rows;
         var aTRs = new Array;
        
         for(var i = 0; i < aRows.length; i++)
         {
         aTRs.push(aRows[i]);
         }
        
         aTRs.sort(generateCompareTRs(iCol));         var oFragment = document.createDocumentFragment();
         for(var i = 0; i < aTRs.length; i++)
         {
         oFragment.appendChild(aTRs[i]);
         }
         oTBody.appendChild(oFragment);
         }
        
        </script> 
    </head>
  
<body>
<input type="button"  value="按序号降序排序" onclick="sortTable(0)" /><p/>
<input type="button" value="按姓名升序排序" onclick="sortTable(1)"/><p/>
<table border = "1" id = "tblSort">
<thead>
<tr>
<th>序号</th>
<th>姓名</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>王明</td>
</tr>
<tr>
<td>12</td>
<td>超人</td>
</tr>
<tr>
<td>3</td>
<td>张三</td>
</tr>
<tr>
<td>4</td>
<td>李四</td>
</tr>
</tbody>
</table>
      
</body>
</html>
解释下上述代码的js 
1。return function compare(tr1, tr2)  tr1 tr2是什么参数 从哪传的?
2。姓名列,升序  按什么规则判断姓名的大小 ?