タグ

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

  • ECMAScript 5th時代のクラス定義とインスタンス生成 - NullPointer's

    オブジェクトの生成にnew演算子を使わないのが今どきらしい。じゃあ、どうすりゃいいのよ? こんなんで良さげ。 var Hoge = Object.create({}, { // プロパティ val: { set: function(a){ this._a = a }, get: function(){ return this._a }}, // メソッド add: { value: function(a){ this._a += a } }, // イニシャライザ init: { value: function(a){ this.val = a; return this; } } }); var h = Object.create(Hoge).init(1); h.add(4); h.add(2); console.log("value:" + h.val) メソッドはvalueにfunc

    ECMAScript 5th時代のクラス定義とインスタンス生成 - NullPointer's
  • ECMAScript 5thなオブジェクト生成の話2 - NullPointer's

    昨日書いた new を使わないインスタンス生成は、実際に使ってみると、たかだかオブジェクトの生成ごときで Object.create(Hoge.prototype).init(); とか長いし、init呼ぶの忘れそうだし、init メソッド定義しないといけないし、return this 忘れるとハマるしで糞すぎ。 というわけでFunctionを拡張してオブジェクト生成用のcreateメソッドを作ってみる。 Object.defineProperty(Function.prototype, "create", { value: function() { var obj = Object.create(this.prototype); if (obj.init) { // initを持っていれば、イニシャライザとして呼ぶ。 obj.init.apply(obj, arguments); } r

    ECMAScript 5thなオブジェクト生成の話2 - NullPointer's
  • Array.prototype.map - NullPointer's

    chromeでnative版とjQuery版のベンチを取ってみたら倍ぐらい違ったのでjQueryを使わないで実装。native版とほぼ変わらない実行速度になりました。 if( typeof Array.prototype.map === 'undefined') Array.prototype.map = function($callback){ var len = this.length; var $_ = new Array(len); for(var i =0; i コールバックについて2点ほど… 一つ目は、コールバック関数の引数。ECMAScript 5thのArray.prototype.mapの仕様では、コールバックには3つの引数が渡されます。最後の引数には配列自身が入ります。 [1,2,3,4].map(function(a,b,c){ return a + c[b] })

    Array.prototype.map - NullPointer's
  • はてなのサービス間を移動するグリモン - NullPointer's

    △のリンク、ダイアリーとブックマーク間を移動するのに便利だったので使ってたんだけど… ダイアリーに限らず、はてなサービス内で気になるユーザーを見つけたとき、そのユーザーが他のはてなサービスを使ってないかどうかを調べるのに地味に便利だったんですけどね、三角。古参はてなユーザーくらいしか使ってる人がいなかったので、消えてしまったのかもしれません。 小さいから分かりにくかったら、大きくすればいいんだ!、なんて簡単に変更しても逆に違和感ばりばりになるだけですね。何か分かりやすい同様のナビゲーション機能があるといいんだけど・・・あるのかな? そういうのは作ってア・ラ・モード。というわけで今日もまたGreaseMonkey https://github.com/paulownia/greasemonkey/blob/master/hatenawarp.user.js このグリモンスクリプトをインストー

    はてなのサービス間を移動するグリモン - NullPointer's
  • Web Workersで遊んでみた - NullPointer's

    HTML5を含む次世代Web規格の一環として、ページ描画・処理のバックグラウンドで処理を実行できるWeb Workersという仕様が策定されています。 Web Workers Using web workers - MDC 既にFirefox 3.5やSafari 4等では一部の機能が実装されているそうなので試してみました。Web Workersでエラトステネスの篩を実行し、素数を探す簡単なJavaScriptです。普通JavaScript実行中はブラウザ操作ができなくなりますが、Web Workersを使うと、ページ描画とは別スレッドで実行されるため、ブラウザが固まりません。 https://nullpon.moe/dev/sample/html5/workers/ Safari 4のNitroエンジンの処理速度は異常ですね…、1000000以下の最大素数の計算でFirefoxと比べて約

    Web Workersで遊んでみた - NullPointer's
  • 1