那个this已经变成其他的了。因为不是你的object调用的。
我也有过这样的问题,不知道如何直接解决问题,只好使用window.yourname取实现。
不知道是否有帮助。function Test() {
this.i=0;
this.test = function() {
alert(i)
i++;
if(i<10)
setTimeout("window."+this.id+".test()",10);
}
this.id=yourname;
eval("window."+this.id+"=this")
return this;
}var obj = new Test();
obj.test();
我也有过这样的问题,不知道如何直接解决问题,只好使用window.yourname取实现。
不知道是否有帮助。function Test() {
this.i=0;
this.test = function() {
alert(i)
i++;
if(i<10)
setTimeout("window."+this.id+".test()",10);
}
this.id=yourname;
eval("window."+this.id+"=this")
return this;
}var obj = new Test();
obj.test();
解决方案 »
- js随机取整数
- 在struts2 中checkbox如何回显
- $(document) 提示 Error: Object doesn't support this property or method 都有什么可能呢?
- jquery jPaginate 分页
- 弹出页面,传值问题
- js 动态增加 删除 html控件
- 怎样使用js在table里添加tr和td
- 请教:同一个页面的不同的FRAME之间怎么传递参数??
- 这个事件如何调用
- 如何限定文本框输入的只能是中文?
- 请问我想要限制文本框必须是数字,而且按tab或者回车的话到下一个文本框怎么做?
- 我想找一个能靠右放置的有多数级菜单的导航条的代码...........最好是能在IE5.0能用滴.....
this.id=yourname;
eval("window."+this.id+"=this")
上面两句代码的意思好象是把this对象保存到window.youname中,
可是当我
var obj1 = new Test();
var obj2 = new Test();
后window.youname中的this就变成是obj2了,obj1又没了感谢你的帮助..谢谢!!!!------------------------------------------
同样的代码我把setTimeout去掉function Test() {
this.i=0;
this.test = function() {
alert(i)
i++;
if(i<10)
this.test;
} return this;
}var obj = new Test();
obj.test();去掉后是可以运行正确,但加上setTimeout后,this就变了,好像是变成了窗体(window)的对象了
继续求救......进来的帮忙顶下,有分...
alert(val);
val++;
if(val<10)
setTimeout("t(" + val + ")",10);
}function Test() {
this.i=0;
this.test = t;
return this;
}var obj1 = new Test();
var obj2 = new Test();
obj1.test(0);
obj2.test(8);但我却不知道为什么?
谁来帮忙解释下...[高分]
setTimeout("methods();",1000);
methods()方法必须是全局的,也就是说setTimeout中运行的是全局的方法或变量
所以之前的this是window的对象就很好理解了.
不知道理解是否到位..高手给予指点!!谢谢!!!!
引用"setTimeout方法的第一个参数可以是一个函数或一段可以执行的js语句,函数对于window来说必须是可见的。"
是的,因为所有全局的方法和变量都是在window对象下即:function func(){alert("test");}
可以通过func()或window.func()调用~在这里非常感谢大家的回帖,特别是 dogfish(dogfish) 和 DeluxWorld(曾经的你)
var obj1 = new Test();
var obj2 = new Test();
后window.youname中的this就变成是obj2了,obj1又没了
obj1没有消失,估计因为setTimeout("methods();",1000);按时间运行方法,但alert()方法只能弹出一个窗口,给人的感觉就像是obj1没了。
请高手指点。
this.i=0;
this.test = function() {
alert(i)
i++;
if(i<10)
setTimeout("window."+this.id+".test()",10);
}
this.id="abcdefg"+Math.round((Math.random()*1000000));
eval("window."+this.id+"=this")
return this;
}var obj = new Test();
obj.test();