2016-05-23 5 views
0

jQueryの中get()メソッドのシグネチャは次のとおりですjQuery get()メソッドは、柔軟なパラメータインデックスをどのようにサポートしていますか?

jQuery.get(url [, data ] [, success ] [, dataType ]) 

しかし、それは両方をサポートしています。

$.get("test.php", function(data) { ... }); 

$.get("test.php", { name: "John", time: "2pm" }); 
これが可能であるどのように

JavaScriptとjQueryの基本的な知識しか持っていない人として、私は、この関数が非常に柔軟性のある方法で引数をサポートするためにどのようにオーバーロードされるのか不思議です。

+1

https://github.com/jquery/jquery/blob/master/src/ajax.js#L832 –

+1

ありがとうございました@KevinB - 「データ引数が省略された場合のシフト引数」は私が見たいものです。私はソースの方法で狩りをしていたが、どこから始めるべきか分からなかった。お気軽に回答として追加してください。 –

答えて

1

パラメータが特定のタイプであるかどうかを判断することによって、パラメータをオプションで柔軟にすることができます。 JQueryは、パラメータがオブジェクトの場合、データであることを認識します。それが関数の場合は、コールバックです。

+1

データはオブジェクト、配列、文​​字列、またはフォームデータでもよいので、比較は実際には逆になります。したがって、関数であるかどうかをチェックする方が簡単です。 –

+0

True dat @ケビンB – swatkins