js 对象 setInterval 调用该对象的内部方法并把得到的计时器保存在该对象
// 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);
这样的写法可以,但是我想封装到对象
[解决办法]
function auction(inid){var tmpObject = {id : inid,timer1 : null,//用于更新auctioninfo 及修正本地浏览器延时timer2 : null,//用于状态倒计时now : null,//服务器now时间戳ainfo : null,//从服务器获取的ainfocurr_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 = thisthis.timer1 = setInterval(function(){o.loadauctioninfo()}, 3 * 1000);}};return tmpObject;}var aobj = auction(1);aobj.init(aobj);
[解决办法]
this.timer1 = setInterval('self.loadauctioninfo()', 3 * 1000);
this.timer1 = setInterval(self.loadauctioninfo, 3 * 1000);
请查找一下setInterval的用法,第一个参数为函数与字符串的区别