var o1 = { testvar : 1, fun:function(){ alert('o1:'+this.testvar); } } var o2 = { testvar : 2, fun:function(){ alert('o2:'+this.testvar); } } var o3 = { testvar : 3, fun:function(){ alert(o3.testvar); } } 如果使用o1.fun.call(o2) 运行结果是 o1:2 个人理解...运行的方法还是o1.fun() ,,只是fun中的this变量变成了o2