一个比较基础的问题

似梦飞花 2012-06-02 06:07:32
function Divmove(id){
this.div=document.getElementById(id);
this.x=0;
this.y=0;
//我在这里想用window.setInterval定时调用move1,该怎么写啊
}
Divmove.prototype.move1=function(){
this.x=4;
this.y=4;
this.div.style.left=parseInt(this.div.style.left)+this.x+"px";
this.div.style.top=parseInt(this.div.style.top)+this.y+"px";
//想在这里用window.setInterval调用其他的方法活window.setTimeout掉用自身,该怎么写啊 this指来指去的搞不懂啊
}
万分感谢
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aihua17 2012-06-02
  • 打赏
  • 举报
回复
要新建一个实例才能调用它的方法


比如 var instance1 = new Test();

setInterval(instance1.add,'1000')

要么方法就这样写Test.add = function(){}
setInterval(Test.add,1000)
似梦飞花 2012-06-02
  • 打赏
  • 举报
回复
亲 来人帮一下
似梦飞花 2012-06-02
  • 打赏
  • 举报
回复
你好 非常感谢你的指导 不过其实我的意思没那摩复杂 假设是这样的
<script type="text/javascript">
function Test(){
this.i=0;
this.begin();
}
Test.prototype.begin=function(){
this.add();
window.setInterval(this.add,'1000');//这里怎么写 意思是没隔一秒调用一次add方法 这样写this指的不是实力化后的a啊
}
Test.prototype.add=function(){
this.i+=1;
alert(this.i);
}
window.onload=function(){var a=new Test();}
</script>
soars 2012-06-02
  • 打赏
  • 举报
回复
重载了一下window.setTimeout,用apply去回调前面的function.以下是测试代码


<script type="text/javascript">
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
var f = (function(){ fRef.apply(null, argu); });
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}

function test(x){
alert(x);
}
window.setTimeout(test,1000,'fason');
</script>

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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