JavaScript: 普通に同期処理 - mayokara note var defer = function(/* f1, f2, ... */){ var self = this, fn = Array.prototype.slice.call(arguments); (function(/* arg2, arg3, ... */){ var args = Array.prototype.slice.call(arguments); (fn.shift()).apply(self, [arguments.callee].concat(args)); })(); }; この関数の説明をきちんと書いてなかったので補足。 bind deferのthisが、引数に与えた関数すべてのthisになる。 defer.call(this, F1, F2, F3); のように呼ぶことで、F1、F2、F