質問: jqueryオブジェクトの返り値は、jqueryオブジェクトなので別のメソッドを繋げることでjqueryオブジェクトにたくさん処理が出来ます。 ``` $("button").on("click",function() { $("div").css("width",500px).text("あいうえお"); }); ``` divに対してcssメソッドで処理をしたあとにtextメソッドで文字を与えています。 下記のソースは、上記のように左のメソッド(`css()`)から右(`text()`)に行くのではなく、callでレシーバオブジェクトのthis参照を処理した後に、sliceメソッドで処理を行ったと認識しております。 ``` Array.prototype.slice.call(arguments); list(1, 2, 3); ``` 左から右に処理をしたり、右から処理をしたりとメソッドチェーンにはいくつか処理の順番があるみたいですが、いくつあるのでしょうか。
回答: メソッドチェーンはメソッドの戻り値がjQueryオブジェクトなので、戻り値のメソッドを呼んでいるだけです。 アクセスしたメンバやメソッドがどういうものを返しているかに依存するので、順番が変わるといったことはありません。 `typeof Array.prototype.slice` はfuncitonであり、functionはcallを持つのでそれを呼んでいるだけです。 (callでsliceを呼んでいるのではなく、sliceというfunctionのcallを呼んでいます。)