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()を使って呼び出すのではありません.関数式に対するブラウザの解析方法が異なるからです.
プログラミングの経験が浅いので、文章の中の一部は目まいがします.