function TableSorter(){};
TableSorter.prototype = {
 sortTable:function(id){
       var $ = this,
       table = $.ID(id),
       tbody = $.TN(table,"tbody")[0],
       rows = $.TN(tbody,"tr"),
       index = [];
       //把要排序的行的引用放到index数组中。
       for (var i=0,l = rows.length; i < l; i++) {
         index[i] = rows[i];
       }
}
请教一下这里  var $ = this, 为什么要把this赋给一个变量而不能直接使用thisjavascript

解决方案 »

  1.   

    因为this要写4个字母,$只要一个字符又或者有时候function里面会定义function要,而在新定义的function里面用this的话,this就不是像你想的那样指向本身了。
      

  2.   

    一般将this赋值给其他对象是因为this会变化。你这个应用其实用不着
      

  3.   

    因为在这种写法下面(a.prototype = {m1:function(){},m2:function(){}}),this的引用会有bug,虽然在你的这段程序里边没有体现出来。
    这个问题在js高级程序设计,第二版的书中有详细描述,你可以找电子版看一下。