プログラミングの実践的なノウハウを発信中! ぜひフォローしておいてください。 おすすめ記事
function doTwice(func) { func(); // 1回目! func(); // 2回目!} // あいさつするだけの関数 function hello() { ('Hello! ');} // あいさつを2回実行する doTwice(hello); 関数doTwiceは受け取った関数を2回実行するだけの関数です。引数funcに関数が入ります。そしてこのdoTwiceに「Hello! 」と表示するだけの関数を渡します。渡すときはhelloのカッコを外すのを忘れずに!doTwice自体は関数として実行するのでカッコが必要です。すると2回実行され、「Hello! 」が2回表示されます。 このような、「関数を受け取る関数」を「高階関数」と呼びます。 なお、渡す関数にいちいち名前をつける必要はなく、functionほにゃららって記述を直接渡せます。数値とかを変数に入れずに「1」とか「2」で関数に渡せるのと同じですね。 doTwice(function() { ('Hello! ');}); 何か見たことのある形です。どんどん真相に近づいてきた気がしますね。 加えて、変数に入った関数にも値を渡して実行できます。さっきのaddFuncとかで、もうやりましたけども。 // 関数に値を渡しつつ2回実行する関数!! function doTwiceWithValue(func) { func('Hello! '); // 1回目! 【JavaScriptの基本】新しい配列を作るmapメソッドの使い方を解説 | ワードプレステーマTCD. func('I am here!!! '); // 2回目!} // 受け取ったmessageを表示するだけの関数を渡す doTwiceWithValue(function(message) { (message);}); この例ではdoTwiceWithValue関数は受け取った関数に、1度目は「Hello! 」を渡して実行、2度目は「I am here!!! 」を渡して実行します。 そしてこの関数に引数messageをひとつ取る関数を渡します。するとmessageの中に「Hello! 」が入って実行され、次に「I am here!!! 」が入って実行されます。つまり「Hello! 」と「I am here!!! 」が続けて表示されます。 「関数を受け取る関数」と「引数をとる関数」のペア、かなり大事なので覚えておきましょう。 コールバック関数 そろそろ本題に戻りましょうか。コールバック関数についてです。 コールバック関数ですが、広い定義でいうと、単なる「高階関数に渡すための関数」です。さっきのhelloとかfunction(message)とかはコールバック関数になりますね。そんだけです。はい。自分で直接実行するのではなく、相手に実行してもらうのがコールバック関数です。 setTimeoutで考えてみましょう。setTimeoutは、受け取ったコールバック関数を指定ミリ秒後に実行します。 setTimeout(function() { ('Hello!
はじめに 前回の記事では、PHPのコールバック関数について紹介しました。 本記事では、PHPのエラーと例外について紹介します。 PHPのエラー エラーが発生したときの挙動 PHPでは実行中にエラーが発生しても、基本的には処理を続けようとします。ただし、続行できないFatal error(致命的なエラー)が発生した場合は処理を停止します。 例えば、次の例では「Warning(警告)」と「Fatal error(致命的なエラー)」を発生させています。 [エラーの例] php // 警告のエラーを発生させる(存在しないファイルを指定) $fd = fopen("c:/temp/", "r"); echo "継続処理"; // 致命的なエラーを発生させる(存在しない関数を呼び出す) a(); echo "継続処理";?
サンプルとして提供されている「物品購買」の申請書において、GreyBoxで表示される申請画面の閉じる処理が実行された際に、「物品購買」の申請書で定義された関数をコールバック関数として実行する例です。
なお、サンプルはPC用画面のみ用意しています。
スマートフォン用画面の場合も全体の流れは同じです。実装中で使用するタグライブラリや Client-side JavaScript API が異なることに注意してください。
下記のプログラムが、コールバック関数の実行を行うための処理が記述されたプログラムです。
スクリプト開発モデル
<. 【PHP入門】エラーと例外処理 - ITを分かりやすく解説. /jssp/src/sample/im_workflow/purchase/screen/>
JavaEE開発モデル
<(展開したwar)/sample/im_workflow/purchase/>
上記ファイルを、以下のファイル名に変更し、上書き保存することで、申請画面において本機能の動作確認を行うことが出来ます。
以下のような処理を記述することで、コールバック関数の実行を行うことが出来ます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26