関数を遅延して実行する
Function.prototype.delay = function(n) { var self = this; var args = Array.prototype.slice.call(arguments, 1); var id = setTimeout(function() { self.apply(self, args); }, n * 1000); return function() { clearTimeout(id); }; }
1秒後に実行
var r = function() { alert("call"); }; var f = r.delay(1);
実行をキャンセルする場合
var f = r.delay(1);
f();