function className(){
this.num=0;
this.run=function(){
this.num+=1;
alert(this.num);
}
}
var test=new className();
setTimeout(function(){test.run();},1000);//正确执行
setTimeout(test.run,1000);//报错,window对象中没有全局变量num
setTimeout是window的一个方法,全称是这样的:window.setTimeout(func,time) 参数func为函数 且该函数中的this只会指向window对象。
因为写成类的形式就是要封装自己的数据,不想在成员函数里写各种全局变量。所以我们要用到this.
这就需要用function(){} 包一层了。为什么呢?
window会直接调用setTimeout第一个参数(函数指针)的“函数体”。