タグ

ブックマーク / artgear.hatenablog.com (2)

  • for in 文の処理について(続編) - プログラミングを勉強するブログ

    先日のエントリでJavascriptのfor in文について for in文は処理済みのプロパティ名のみを覚えていてプロパティの数はチェックしない。未処理のプロパティが存在するか否かはループ内の処理が終わるたびにその時点でのプロパティと処理済のプロパティを比較して判断される。 と、結論付けていたのですがこれとは異なる挙動になる場合をみつけたので続編です。よろしければ先のエントリに目を通してからお読みいただければと思います。 それはどういう場合かというと 「最初に存在していたプロパティを未処理の段階で削除し、ループの次の周でもう一度同じ名前のプロパティを追加した場合」 です。 var testHash = { a: "one", aa: "two", aaa: "three", aaaa: "four", aaaaa: "five", aaaaaa: "six", aaaaaaa: "sev

    for in 文の処理について(続編) - プログラミングを勉強するブログ
  • 私が今までクロージャを理解できなかった理由 - プログラミングを勉強するブログ

    Javascriptを勉強する上で誰もがつまずくと言われるクロージャですが私も例に漏れず理解できないでいました。 さまざまな解説サイトを読んだりサンプルコードを書き換えてみたりして 静的なスコープの言語で利用できる。 関数が終了したあともそのローカル変数が参照できる。 といったクロージャの「仕組み」や「特徴」については分かったものの、もっとも重要ともいえる 「どういう時にクロージャを使えばいいのか」 が分かりませんでした。言いかえると友人がなんて言って悩んでいる時に 「そう言う時はクロージャを使うといいよ」 と言ってあげればいいのか。 例えばプログラムの勉強を始めた友人が 「これと同じ処理もう何回も書いてるんだよ。コピペばっかりしてる気がする」 と言って悩んでいたら 「そこを関数にすればいいんじゃない?」 って教えてあげますよね。 これと同じように友人が 「○○○○○○なんだよ、うまい方法

    私が今までクロージャを理解できなかった理由 - プログラミングを勉強するブログ
  • 1