JavaScriptプログラム開発(14)—関数宣言と関数表現
2229 ワード
関数宣言と関数表式はいずれも一つの関数を宣言していますが、両者に違いがあります.解析器は両者を同一視しているわけではありません.解析器は、まず関数宣言を解析し、任意のコードを実行する前に利用できるようにします.関数式については、解析がその行に実行されるまで、本当に解釈されて実行される必要があります.下記のコードで示します.
もう一つの小さな知識点があります.値の関数として、関数を実行するのではなく関数の指針を訪問するなら、長い間関数の後ろの括弧を削除しなければなりません.次のコード:
<script type="text/javascript">
alert(add(2,3));
function add(a,b){
return a+b;
}
</script>
このセグメントコードは、add(a,b)が関数宣言であるため、どのようなところでも解析的に実行できます.次のコード:<script type="text/javascript">
alert(2,3);
var sum = function(a,b){
return a+b;
}
</script>
このコードは出力もあり、実行もありますが、意図した機能を正しく実行したわけではありません.このコードは関数式なので、解析器が宣言関数の行に実行されることを確認しなければなりません.正しく呼び出されます.このセグメントコードは正しく実行されていません.もう一つの小さな知識点があります.値の関数として、関数を実行するのではなく関数の指針を訪問するなら、長い間関数の後ろの括弧を削除しなければなりません.次のコード:
<script type="text/javascript">
function callSomeFunction(someFunction,someArguments){
return someFunction(someArguments);
}
function add10(num){
return num+=10;
}
var result1 = callSomeFunction(add10,10);
document.write(result1+"<br />");
var result2 = add10(10);
document.write(result2+"<br />");
</script>
カルSomeFunctionのadd 10に伝えます.