質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

1回答

259閲覧

様々なケースで使用される引数の意味

maguzo

総合スコア57

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2018/08/14 12:06

編集2018/08/14 12:07

下記のコードようなajaxでコールバック関数を記載する時の引数の意味合いがよくわからなくなってしまいました。
これまでもいわゆる「引数」の理解にたびたび悩まされてきました。

例えばですが、

  1. PHP等で自己定義関数を作成する場合のfunctionの引数については

function calc(a){return a*2};
平凡な言い方ですが、ここでの引数は汎用的な関数を作成する場合で、可変値を置き換えたい場合に
この可変値を自己定義関数上の「引数」として設定するものと理解しております。

  1. Javascript(Jquery)でイベントのプロパティを拾いたい場合にはこの引数について

$('.hoge').on('keypress',function(e){
console.log(e.keyCode);
})
こちらも平凡な言い方ですが、この引数のeは上記の可変値を設定したい場合の汎用的な表現としての
引数とは根本的に異なり、Javascriptのイベントの内容や状態にアクセスしたい場合に設定しなければ
ならない引数で”Javascriptのイベントの内容を引き出すためのツール”であると理解しております。

1.まず1)と2)の通り、一口に引数と言ってもその意味合いは異なっている(自己定義関数とコールバック関数によりその性格が異なっていると勝手に理解しているのですが)ものと理解してもよろしのでしょうか?それとも異なる使い方をしているようで、本質的には同じ機能を有しているのでしょうか?

2.下記のように、ajaxのsuccessの際のコールバック関数の設定される引数がどのような意味があるのかがわかりません。もちろん、
sample.htmlの要素==<p>hello</p>==引数dat==html(dat)という関係であることはなんとなく
想像がつくのですが、上記のどの引数ともまた意味合いが異なっているように思えて、ますます引数とはなんたるかが混乱してきました。。

この機会に、様々なケースで使用される引数の、その本質について、理解したいと思っているのですが
この3つの例でわかりやすくご教示いただけるととても嬉しいです。
わがままなお願いでございますが、よろしくお願い申し上げます。

html

1//main.html 2 <div class="ques_btn" id="main_respo">Response</div> 3 <div class="insert"></div>

javascript

1 $(function(){ 2 $('#main_respo').on('click',function(){ 3 $.ajax({ 4 type:'GET', 5 url:'sample.html', 6 success: function(dat){//ここです 7 $('.insert').html(dat) 8 } 9 }) 10 }) 11})

html

1//sample.html 2<p>hello</p>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/08/17 09:31

まだ質問が「受付中」になっていますが、「ベストアンサー」を選び「解決済」にされてはいかがでしょうか。
maguzo

2018/08/20 06:41

失礼いたしました、ご指摘有難うございます
guest

回答1

0

ベストアンサー

結論から言えば、"引数"の使われ方はすべて同じです。
おそらく、"誰がその関数の引数に実際の値を与えるか"で混乱されているものと思われます。

  1. 自分で作った関数を自分で呼び出す場合

javascript

1function calc(a){return a*2;}

この文はcalcという名前付きの自己定義関数を作成しています。
定義した関数はcalc(2);といったように『自分で』呼び出すことになります。
関数の引数に与える実際の値は自分で決めることになります。

  1. 自分で作った関数を他の関数から呼んでもらう場合(コールバック)

javascript

1$('.hoge').on('keypress', function(e){ 2 console.log(e.keyCode); 3});

この文ではjQueryの.on()という関数に'keypress'function(e){ console.log(e.keyCode); }という2つの引数を与えています。
function(e){ console.log(e.keyCode); }という式は名前のない自己定義関数(無名関数)を作成しています。
関数に名前がないので自分で呼び出すことはできませんが、.on()関数は引数でfunction(e){ console.log(e.keyCode); }を受け取っているので『.on()関数の中で』なら作成した無名関数を呼び出すことができます。
関数の引数に実際の値を与えるのは.on()関数がやってくれます。

3つ目の例は2)の例と同様で、関数の引数に実際の値を与えるのは.ajax()関数がやってくれます。

投稿2018/08/14 20:23

reosablo

総合スコア339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maguzo

2018/08/16 22:37

ご教示をいただきありがとうございます。 あまりに書き慣れ過ぎていて気に留めていなかったのですが$.ajax()や.on()も関数でそれらの引数としてコールバック関数を設定しているのですね。また、そのコールバック関数の引数の意味は他の関数(元の関数)により定義さているのですね、とてもわかりやすくてクリアになりました。 ありがとうございます!
reosablo

2018/08/21 15:36

お返事遅くなりました。勉強になってもらえたようでなによりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問