var message;
function Message(message) {
(function() {
$('#configMsg').html(message);
}());
this.timer = setTimeout(function() {
$('#configMsg').html('');
}, 5000);
}
$('#foo').click(function() {
message = new Message('foo');
});
$('#bar').click(function() {
message = new Message('bar');
});
我想要做的是显示消息5秒,但如果我显示一条新消息,计时器应重置为5秒。JavaScript显示超时消息超时
我的理论是,如果我用新的Message
函数覆盖了包含Message
函数的message
var,旧函数将随着它包含的计时器一起被销毁。
但它没有工作,我认为旧计时器仍然存在,因为有时消息显示少于5秒。
这里是一个小提琴http://jsfiddle.net/sgRrk/
自调用函数是在此代码毫无意义。 –
@Chris我还在学习oo javascript,我不确定函数'object'是否在'实例化'时运行它自己的代码 – andrew
类的新实例在实例化时运行代码,但类有它们的用途特别是当你需要一个具有不同原型的新实例时。在这种情况下,使用这种模式绝对没有理由,并且每次点击都创建一个新的实例。 – adeneo