タグ

ブックマーク / monjudoh.hatenablog.com (4)

  • JavaScriptでのbuilt-in/DOM objectのprototype拡張 - monjudoh’s diary

    @rosylillyが気にしていた のでまとめた。 built-in/DOM objectのprototype拡張による弊害 追加したプロパティ/メソッドがfor inで列挙される var obj = {a:1}; for (var i in obj) { console.log(i); } こうするとaだけ出るはずが、 Object.prototype.b=function(){}; こうした後だとa,bが出てしまうって奴ですね。 そのまま代入しないでObject.defineProperty/definePropertiesでenumerable:falseのプロパティとして定義すれば列挙されなくなるので特に問題ありません。 今回挙げるprototype拡張の弊害の内唯一これだけはECMAScript5時代になって解消されました。唯一これだけは。 built-in/DOM object

    JavaScriptでのbuilt-in/DOM objectのprototype拡張 - monjudoh’s diary
  • JavaScriptでの非同期関数合成 - monjudoh’s diary

    Unserscore.jsや互換ライブラリのLo-Dashを使うと関数合成が出来ます。 複数個の関数があって、関数を呼び出した結果を使って関数を呼び出して…っていうのを1個の関数にします。 ドキュメントの例を見れば分かるかと。 簡略化のために関数合成の対象になる関数を1引数・戻り値ありの関数とします。 これを非同期処理をする関数に当てはめるとcallbackを含む2引数・戻り値なしの関数が当てはまるでしょう。 この場合のcallbackは1引数の関数とします。 まず、logを出力するcallback関数を定義しましょう。 function log(result){ console.log(result); } 次にcallbackを含む2引数・戻り値なしの関数を定義します。別に非同期処理はやっていないです。 // 1を足す function add1(callback,arg){ call

    JavaScriptでの非同期関数合成 - monjudoh’s diary
  • packerで圧縮されたJavaScriptのdebug方法 - monjudoh’s diary

    minifyされたJavaScriptは各種開発者ツールのdeminifierを使えば整形された状態でdebug出来ますが、packerで圧縮されたJavaScript(以下packed JS)はどうかという話。 Google Chromeの開発者ツール前提で話をするので他のブラウザについては誰か調べてみてください。 packed JSをdebugする際の壁はそれがevalで実行されることですが、Google Chromeの開発者ツールではevalで実行されたJSもdebug実行出来ます。 問題はどうやってdebug実行に持っていくかですが、globalから辿れる何らかのAPIがあるなら呼び出し元でブレークポイントを貼ってstep intoすれば良いです。 その場実行されるようなJSの場合はそれもできないので工夫が必要です。 以下は古いjQueryを使った例でそのような工夫は来不要ですが

    packerで圧縮されたJavaScriptのdebug方法 - monjudoh’s diary
  • githubで複数ユーザを使い分ける - monjudoh’s diary

    githubというかgitosisはsshの鍵でユーザを判定します。 設定の仕方はhelpでも見てくだしあ。 Redirecting... Redirecting... Redirecting... 自分のgithubユーザとして色んなマシンからgithubを使う場合は簡単です。 上記の説明のとおりに公開鍵を追加していけばいいだけです。 で、同じマシンの同じユーザアカウントで、 複数のgithubユーザとしてgithubを使うのはどうすればいいかというと、 ホストのエイリアスを設定して別の秘密鍵を設定してやれば大丈夫です。 入門OpenSSH / 第4章 OpenSSH を使う ↓の例は複数HostNameへのSSH接続の管理ですが、 ~/.ssh/config で簡単に複数ホストへのSSH接続を管理する - すぱぶろ 同一HostNameで別Hostというふうにも出来るのでそれを使います

    githubで複数ユーザを使い分ける - monjudoh’s diary
  • 1