【JavaScript 】【jQuery】引数省略の方法
■topic summary
jQuery's method (ex:$.getJSON) can be called ,
$.getJSON( url, data, callback )
or
$.getJSON( url, callback )
I wandered and understand why can I write with these two kinds.
jQueryの引数の省略、
なんとなくリファレンスを眺めていて↓
test.jsからJSON形式のデータを読み込み、そのデータの中のnameにアクセスする
http://semooh.jp/jquery/api/ajax/jQuery.getJSON/+url,+data,+callback+/
$.getJSON("test.js", function(json){
・・・
幾つかのデータを渡しながら、test.jsからJSON形式のデータを読み込み、そのデータの中のnameにアクセスする
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
考えたらこれ、どうなっているんだろう。
2つ目の引数としてdataを期待しているけれど、
functionを2つ目の引数に書くこともできる。
引数の型で判断しているのかな?
確かめてみよう。
GitHubのコード、
難読化前のコードを見てみると・・・
get: function( url, data, callback, type ) { // shift arguments if data argument was omitted if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = null; }
https://github.com/jquery/jquery/blob/master/speed/jquery-basis.js
なるほどね。
「shift arguments」だって。
jQuery.isFunctionで第2引数を判定している。
こういう定義方法があるのか。
jQuery.isFunction
っていう関数も初めて知った。
jQueryってUI操作にしか使っていなかったけど、こういう便利関数もあるんだ。