タグ

ECMAScript5とtipsに関するmonjudohのブックマーク (2)

  • uncurryThis 関数 - hogehoge @teramako

    http://wiki.ecmascript.org/doku.php?id=conventions:safe_meta_programming にて大変有用な書き方を身に着けた。 Function.prototype.bindとFunction.prototype.callの黒魔術的なもの。 obj.hasOwnProperty("prop"); と書くところをcallで書くと var func = Object.prototype.hasOwnProperty; func.call(obj, "prop"); と書ける。さらにcallをbindしてみると var func2 = func.call.bind(func); func2(obj, "prop"); となる。さらに、bindをbindすると var func3 = func.bind.bind(func.call)(func

    uncurryThis 関数 - hogehoge @teramako
    monjudoh
    monjudoh 2012/01/17
    Function.prototype.bind.bind(bind.call)で取得したuncurryThisにメソッドを渡すとmethod.call相当の機能の関数を返す
  • +new Date を Date.now() に差し替えると200〜400% 高速化も - latest log

    CSS を利用したアニメーションでは、必ず現在時刻を取得するコードが入ります。 var now = +new Date; ECMAScript-262 5th では Date.now() が新しく追加されました。 Date.now() は +new Date と同じ機能(現在時刻を数値で返す)を持ちながら、new の必要がないため速そうです。 ベンチ <!doctype html><html><head><title></title> </head><body> <script> window.onload = function() { Date.now || (Date.now = function() { // Date.now が実装されていないブラウザ用の実装 return +new Date; }); job1(); job2(); } function job1() { var

    +new Date を Date.now() に差し替えると200〜400% 高速化も - latest log
    monjudoh
    monjudoh 2009/12/26
    『var nowimpl = !!Date.now;』『nowimpl ? Date.now() : +new Date;』
  • 1