タグ

ブックマーク / dqn.sakusakutto.jp (4)

  • [JavaScript] 猿でもわかるクロージャ超入門 2 関数の中の関数 - DQN起業日記

    クロージャとは関数である。 ずばり言います。 クロージャとは、関数である まずココがポイント。 次に、たいていの場合、 クロージャとは関数の中の関数である これで、クロージャのことを30%程度は理解したことになります。 だから、 「クロージャーって何?」 って誰かに聞かれたら、 「ああ、関数の中に書く関数のことでしょ」 って答えとけば、30%ぐらい正解ということになります。(w Javascriptでは、関数の中に関数を書くことができます。 もうちょっと正確に言うと、関数の中で別の関数を定義することができます。 //関数の中で関数を定義 function outer(){ function inner(){ alert("hello"); } } ここで、関数innerを呼び出すにはどうしたらいいでしょうか? 下記のコードをコピペして、デスクトップに.htmlファイルとして保存して、ブラウ

    [JavaScript] 猿でもわかるクロージャ超入門 2 関数の中の関数 - DQN起業日記
  • JavaScriptで、もう連想配列の最後のカンマに悩まない!(※追記あり) · DQNEO日記

    末尾に要素を増やしたい、または減らしたいときに問題が起こります 例えば" c : 3 "の行を単純に削除するとバグるので削除したいときに、" b: 2,"のカンマを削除する必要があります。 また、" d : 4 "を追加したいときに、" c : 3 "の後にカンマを入れる必要があります。 これは面倒くさいですね。 (エンバグについてはjslintなどのツールで防げばよいという指摘があったので修正しました。) より良いやりかた var x = { a : 1, b : 2, c : 3, dummy : null } このように最後に "dummy : null" というダミーの要素を書いておきます。 こうすれば、プロパティa, b, cはどれもカンマ付きで平等になります。 ぜひ一度試してみてください。 (もしかして常識だったらすみません。あとこの手法は for in で走査したいときはよく

  • [JavaScript] 猿でもわかるクロージャ超入門 3 無名関数 - DQN起業日記

    Javascriptでは、関数を定義するのに2通りのやり方があります。(注1) 関数を定義する方法その1 (普通のやり方) <script> function speak(){ alert("hello"); } speak(); // "hello"と出力 </script> はい、普通ですね。 次はJS特有のやり方です。 関数を定義する方法その2 (無名関数を使う) <script> var speak = function (){ alert("hello"); } speak(); // "hello"と出力 </script> 2行目に注目。 この式の右辺、function( ){...}の部分を無名関数といいます。 右辺で無名関数を生成して、それを変数speakに代入しています。 こうすると、変数speakはまるで関数のような振る舞いをします。(というか関数になります) spe

    [JavaScript] 猿でもわかるクロージャ超入門 3 無名関数 - DQN起業日記
  • [Javascript] 関数宣言の落とし穴 function foo ( ){..} と var foo = function ( ) {..} は動作が違うので要注意!

    Home Subscribe function funcname(args){ do something}; は var funcname = function(args){ do something}; と等価になる。 javascriptを理解するためのたった2つの大切なこと javascriptを理解するためのたった2つの大切なこと:改 引用元の記事はすばらしい記事ですが、ここは間違いです。 等価だと思っていたらひどい目にあいます。 サイ 第5版のp.96にちゃんと書いてあります。 function文はプログラムの静的な構造を定義するだけなのです。 JavaScriptコードが解析されコンパイルされたときに、関数は定義されます。 どういうことかというと、 function foo( ){ ... } はコンパイル時に関数が定義されます。 var foo = function( ){

  • 1