js 对象 setInterval 调用该对象的内部方法并把得到的计时器保存在该对象

hobo_online 2011-07-28 10:20:37
// JavaScript Document
function auction(inid)
{
var tmpObject =
{
id : inid,
timer1 : null,//用于更新auctioninfo 及修正本地浏览器延时
timer2 : null,//用于状态倒计时

now : null,//服务器now时间戳
ainfo : null,//从服务器获取的ainfo
curr_price : 0,//竞拍的当前价
action : null,//喊价纪录

auction_join : null,//参与人
auction_join_t : 0,
auction_join_state : false,

loadauctioninfo : function()
{
alert("id:" + this.id);
}
,
init : function(obj)
{
this.loadauctioninfo();
var self = this;
var tmp = '12313';

this.timer1 = setInterval('self.loadauctioninfo()', 3 * 1000);
}


};
return tmpObject;
}



var aobj = auction(1);
aobj.init(aobj);

这样会提示self.loadauctioninfo 不是一个方法...
求解决方法

aobj.timer1 = setInterval('aobj.loadauctioninfo()', 3 * 1000);

这样的写法可以,但是我想封装到对象
...全文
244 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangws 2011-08-06
  • 打赏
  • 举报
回复
this.timer1 = setInterval('self.loadauctioninfo()', 3 * 1000);

this.timer1 = setInterval(self.loadauctioninfo, 3 * 1000);

请查找一下setInterval的用法,第一个参数为函数与字符串的区别
hobo_online 2011-07-28
  • 打赏
  • 举报
回复
恩,确实能跑起来, 有一点不明白, 我上面的写法,typeof(self) 是个object,那为什么不能调用方法
挨踢直男 2011-07-28
  • 打赏
  • 举报
回复
function auction(inid)
{
var tmpObject =
{
id : inid,
timer1 : null,//用于更新auctioninfo 及修正本地浏览器延时
timer2 : null,//用于状态倒计时

now : null,//服务器now时间戳
ainfo : null,//从服务器获取的ainfo
curr_price : 0,//竞拍的当前价
action : null,//喊价纪录

auction_join : null,//参与人
auction_join_t : 0,
auction_join_state : false,

loadauctioninfo : function()
{
alert("id:" + this.id);
}
,
init : function(obj)
{
this.loadauctioninfo();
var self = this;
var tmp = '12313';
var o = this
this.timer1 = setInterval(function(){o.loadauctioninfo()}, 3 * 1000);
}


};
return tmpObject;
}



var aobj = auction(1);
aobj.init(aobj);

87,989

社区成员

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

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