タグ

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

  • JavaScriptでコマンドを作って実行する - monjudoh’s diary

    前置き Firebug1.10にhelpコマンドなるものが入ってました。 consoleでhelpって入力して実行するとFirebugで使える関数等が表示されます。 help();じゃないんですよ。 関数じゃなくてコマンド。 どうやって実現しているんだろうかって気になったのでエスパーして似たようなのを作ってみました。 Firebugのソースは読んでないけど多分おんなじようなことをしているはず。 コード 以下、with文の中でcommandって書いて実行するとcommand is executed.って出力されます。 var obj={}; Object.defineProperty(obj,'command',{ get : function() { console.log('command is executed.'); } }); with (obj) { command // com

    JavaScriptでコマンドを作って実行する - monjudoh’s diary
  • 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
  • BPStudy#60 ECMAScript5時代のJavaScriptライブラリ - monjudoh’s diary

    JavaScript: 世界で最も誤解されたプログラミング言語(2001年) JavaScript: The World's Most Misunderstood Programming Language http://d.hatena.ne.jp/brazil/20050829/1125321936 2012年未だ誤解されているプログラミング言語JavaScript 嫌われている"JavaScript"とは何か? ECMAScript3 13年前・前世紀(1999年)の言語仕様 IE6 11年前(2001年)のランタイム 嫌われている"JavaScript"と同世代の各言語のバージョンは? Python2.1 Ruby1.6 Perl5.6 J2SE1.3 現在のJavaScriptはECMAScript5 どの環境で使える? http://kangax.github.com/es5-c

    BPStudy#60 ECMAScript5時代のJavaScriptライブラリ - 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
  • Firebugについてまとめ - monjudoh’s diary

    随時更新 公式ドキュメント Firebug Console API http://getfirebug.com/commandline.html 気になったところ $$(selector) 複雑なCSSセレクタでなければjQueryの$関数の変わりとして使える感じ。 dirxml(node) outerHTML相当のHTMLを出してくれる感じ $$(selector)と組み合わせると便利そう。 inspect(object[, tabName]) 指定したオブジェクトを指定したタブで表示できる。特定要素をHTMLタブで表示させる時、「inspect($$('table#some-id td')[0],'html');」みたいにできる。今まで、「console.log($$('table#tab td')[0]);」を実行してconsoleタブに表示させた後、そこをクリックみたいにやっていた

    Firebugについてまとめ - monjudoh’s diary
    ama-ch
    ama-ch 2008/08/28
  • 1