javascriptシリーズの学習ノートを深く理解する(二):命名関数式を公開する
4229 ワード
(function foo(){}); // :
1. (function foo(){}), () ,
(var x = 5); // , : var ,
({x:"lala"})// , , , JSON 。
{ "x": 5 }; // "{" "}"
({ "x": 5 }); // "{" "}"
2. 。 , Block( )({ ... }) , if、while for 。
1 // !
2 // first function,
3
4 if (true) {
5 function foo() {
6 return 'first';
7 }
8 }
9 else {
10 function foo() {
11 return 'second';
12 }
13 }
14 foo();
15
16 // , ,
17 var foo;
18 if (true) {
19 foo = function() {
20 return 'first';
21 };
22 }
23 else {
24 foo = function() {
25 return 'second';
26 };
27 }
28 foo();
3.ネーミング関数式は使わない方がいいです.ネーミング関数式を使うとデバッグが便利になるためです.名前付き関数式を使う場合は、呼び出し時に関数の識別子を使用しないでください.及びvar a=function b(){}呼び出し時にa()を使う.を呼び出します.b()を使って呼び出すのではありません.関数式に対するブラウザの解析方法が異なるからです.
プログラミングの経験が浅いので、文章の中の一部は目まいがします.