ついでに extractOptions
これもRailsでよくお世話になったメソッドなのでポート。世の中探せばあるのかもしれないけれど。こうやって実装していくと、javaScriptの言語仕様の奥深いところではまったりするのでためになってます。
f = function(){ return Crayon.extractOptions.apply(this, arguments); }; var ret = f(1,2,3); // ret.args -> [1.2.3] // ret.options -> null var ret = f({opt1: "a"}); // ret.args -> [] // ret.options -> {opt1: "a"} var ret = f(1,2,3, {opt1: "a"}); // ret.args -> [1.2.3] // ret.options -> {opt1: "a"}