 <p>integers are not passed by reference in JavaScript meaning there is no way to change the interval by changing your variable.</p> <p>Simply cancel the setInterval and restart it again with the new time.</p> <p>Example can be found here: <a href="http://jsfiddle.net/Elak/yUxmw/2/" rel="nofollow">http://jsfiddle.net/Elak/yUxmw/2/</a></p> <pre><code>var Interval; (function () { var createInterval = function (callback, time) { return setInterval(callback, time); } Interval = function (callback, time) { this.callback = callback; this.interval = createInterval(callback, time); }; Interval.prototype.updateTimer = function (time) { clearInterval(this.interval); createInterval(this.callback, time); }; })(); $(document).ready(function () { var inter = new Interval(function () { $("#out").append("&lt;li&gt;" + new Date().toString() + "&lt;/li&gt;"); }, 1000); setTimeout(function () { inter.updateTimer(500); }, 2000); }); </code></pre>