RIAトピックス
リッチクライアント/RIAを主テーマに取り扱います。Flex、Ajax、AIR、Silverlight、JavaFX、etc。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[].sort.call(null) これで window オブジェクトを取得できるのは何故?
.sort.call(null)の深淵 【素人がプログラミングを勉強するブログより】
http://d.hatena.ne.jp/javascripter/20100217/1266393981

「[].sort.call(null)」というコードを実行するとwindowオブジェクトが返ってくる理由の説明です。
一見凄い難しい動作が起こっているようですが、丁寧な説明を読めば一目瞭然。

色々誤解しているのを承知で抜粋して書くと以下の通り。

・sortはオブジェクトにlengthがない場合は何もせずthisを返す。
・window.lengthはフレーム数を返す。
・[].sort.call(null)は[].sort.call(window)と同じ。
・通常の場合window.lengthは0。
・windowをsortすると、sortすべき要素がないので何もせずthisを返す。
・thisはwindowなので、window==windowとなり、trueになる。


一つ一つ見て行くと訳の分からない動作も説明がつきますね。
上でも書きましたが、元記事で丁寧に詳しい説明がなされているので興味のある方は目を通してみて下さい。
実際に使えるかどうかは別にして(というか使ってはダメ)勉強になると思います。

K.Y
スポンサーサイト

テーマ:システム開発 - ジャンル:コンピュータ

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2005 RIAトピックス all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。