日期:2014-05-16  浏览次数:20396 次

js this问题

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赋给一个变量而不能直接使用this
javascript

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