JavaScript

言われなきゃ気付かない$.extendの引数。

$.extendも$.fn.extendも同じなんだけど、このメソッドには引数が3種類ある。まずはメジャー系2種。 $.extend({ foo: 'bar' }); // jQuery.foo = 'bar'; var o = $.extend({ foo: 'bar' }, { fizz: 'buzz' }); // merge but shallow jQuery自体を拡張する1引…

superが呼べる継承メソッド。

javascriptで継承といえば、 var Parent = function() {}; var Child = function() {}; Child.prototype = new Parent(); という感じで「prototype継承」を使うのが普通(だと思う)。 ただ、この手法で困るときがある。 オーバーライドした子クラスのメソッ…

Functionにまつわる変態的検証。

JavaScriptの不思議な言語構造、Function。 どうなるか気になる挙動があったので確認してみた。 Functionをnewするときとcallするときでthisってどうなるの? まずFunctionが何かっていうと、 var f = function() {}; のようにして作られる「関数型オブジェ…

なぜかよくやるミス。

var foo = new foo(); 先にfooが宣言されるから 「foo is not a constructor.」で怒られる。 そもそもクラス定義壊しちゃダメだろww var foo = new Foo(); クラス名と(文脈的にはレキシカルな)変数名の命名規則を守りましょうって話。

やったー、require.jsできたよー!

論よりコード。 (function() { if (!window.XMLHttpRequest) { alert('no xhr'); XMLHttpRequest = function() { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {} try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) …

忘れないように。

yield diferred ちゃんと勉強しなきゃ。

遅延ロードっていうか。

こういうことをJavaScriptでしたい。 use lib '../lib'; use Foo; use Bar; my $foo = Foo->new(); Bar::static_method($foo); 要するに、jsファイル中で依存するjsファイルをロードして、 ファイル中の処理は読み込み後に実行したい。 uselib('../js'); use…

GUI構想の続き。

canvasで文字列描画が(まだ)できないのでどうしようか考え中。 現在のアプローチとしては、・座標が負のdivにtextを付けてcaptureする ・フォント画像をdata uri化してなんとかするの2つを考えてる。 今日バイブル(IT戦記)を読んでたらlocalStorageって…

canvasかstyleか。

JavaScriptでリッチGUIアプリケーションを構築するにあたって、 どうやってレンダリングするかという問題がある。 今のところアプローチとして、 ・タグを使用する ・styleや属性を操作するエンジンを組む(gameQueryのような) の2つがあるようだ。 とりあ…

Chromeにサイドバー。

ChromeはFireFoxとかのサイドバーがどうもないらしい。 かといって縦解像度の低いtype Pで上部のバーはできれば消したい。 というわけでExtension作ることにした。 JavaScript自体の勉強と、あと何かひとつjsも武器が欲しいなと思って、JQuery。 DOM操作とエ…