setInterval问题

shizhusz110 2010-03-22 03:30:16
too.prototype.show = function() {
var me = this;
setInterval("me.tt()", 10);
}
这样老提示me没有定义, 我是在没办法把它提出来写了??有什么 好解决的???
...全文
89 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shizhusz110 2010-03-22
  • 打赏
  • 举报
回复
谢谢13楼的大哥!
拿有什么好的解决办法不?
wybxs2010 2010-03-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shizhusz110 的回复:]
我要在对象内部,要用setInterval,调用该内部方法?我现在是单独写出来的,有没有不单独写了:
setInterval("this.xxx()",100);
[/Quote]
个人比较同意此观点
leonbingo 2010-03-22
  • 打赏
  • 举报
回复
让我给你解释下吧,
too.prototype.show = function() {
var me = this;
setInterval(this.tt, 10);
}

看这段代码,如果你不是用setInterval(this.tt, 10);来进行调用,而仅仅利用this.tt()这样来调用你就可以得到正确的x的值,为什么呢!愿意就在于这个this指针的问题,
var t = new too(),
那么t内部的对象运行的时候,this指代什么,就是指代t的这个对象,那么t.tt里面的this.x可以理解为是t.x,利用this.tt来调用,肯定是正确的,

但是,你这里利用了setInterval(this.tt, 10);来运行this.tt,会出现一个什么问题,setInterval是将this.tt当成一个单纯的函数来看待,并非是属于t这个实例了,所以,this.tt函数里面的alert(this.x),这里的this,语义就变了,不再是t这个实例了,而变成了,tt这个函数本身,这个函数本身没有x的定义,所以,必然弹出不存在罗,说的可明白?
shizhusz110 2010-03-22
  • 打赏
  • 举报
回复
恩!我不想去掉!我现在是拿出来些的!但是我想问下,如果像那样调用!可以不?
Peter200694013 2010-03-22
  • 打赏
  • 举报
回复
<html>
<head>
<script type="text/javascript">

function too() {
this.x = 100;
this.tt = alert1;
this.show = show1;
}

function alert1() {
alert(this.x);
}
function show1()
{
this.tt();
}

var t = new too();
t.show();
</script>
</head>
</html>

这样没有not difined,但是我把setinteral去掉了,你说的问题是不是和循环有问题啊?
shizhusz110 2010-03-22
  • 打赏
  • 举报
回复


function too() {
this.x = 100;
}

too.prototype.tt = function() {
alert(this.x);
}

too.prototype.show = function() {
var me = this;
setInterval(this.tt, 10);
}

var t = new too();
t.show()

现在看到了不???丰哥!
Peter200694013 2010-03-22
  • 打赏
  • 举报
回复
你想测试js中的对象,方法调用?
丰云 2010-03-22
  • 打赏
  • 举报
回复
恕我愚钝,愣没看懂
shizhusz110 2010-03-22
  • 打赏
  • 举报
回复
function too() {
this.x = 100;
}

too.prototype.tt = function() {
alert(this.x);
}

too.prototype.show = function() {
var me = this;
setInterval(this.tt, 10);
}

var t = new too();
t.show();

不都在这里了!这里只是个测试!对象!和这个差不多!
丰云 2010-03-22
  • 打赏
  • 举报
回复
能不能把代码贴全点,你的this指代的类里面,有没有x这个属性??????
shizhusz110 2010-03-22
  • 打赏
  • 举报
回复
我就是要setInterval对象里面的方法,可是这样this.x怎么老undefined,这个只是测试!!!!
丰云 2010-03-22
  • 打赏
  • 举报
回复
too.prototype.show = function() {
var me = this;
setInterval(this.tt, 10);
}
这段没看懂。。。
你到底要干什么?
shizhusz110 2010-03-22
  • 打赏
  • 举报
回复
代码是这样:
function too() {
this.x = 100;
}

too.prototype.tt = function() {
alert(this.x);
}

too.prototype.show = function() {
var me = this;
setInterval(this.tt, 10);
}

var t = new too();
t.show();
这里的this.x老是没定义!!
shizhusz110 2010-03-22
  • 打赏
  • 举报
回复
我要在对象内部,要用setInterval,调用该内部方法?我现在是单独写出来的,有没有不单独写了:
setInterval("this.xxx()",100);
Peter200694013 2010-03-22
  • 打赏
  • 举报
回复
直接写个方法,为什么非要加 "me."?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧