08 | 2008/09 |  10

  1. 無料サーバー

search phpbb-phpbb-FC2BLOG-Info-Edit Template-Post-Edit-Upload-LogOut

anything from here

CSSやJavascript自習の苦闘史を綴っていきたい。恐縮ですがJavascriptを有効にしてご覧ください。
2005年12月から社会問題も掲載!

jQuery() の挙動を解読する(2) インスタンスプロパティ・メソッドとクラスプロパティ・メソッド──jQuery解読(6)

初稿:2007/11/03

改訂:2007/11/21……用語を正確に書き換えた

再改訂:2007/11/27……ケアレスミスを修正した。

jQuery()とjQueryのそれぞれのプロパティとメソッド

init()内では、随所に jQuery(・・・).*** や jQuery(・・・).***() と jQuery.*** や jQuery.***() が多用されています。またinit()だけではなくjQuery全体で沢山出てきます。ここではこの2つの差異に着目し、これらが互いに全く別のものであることを確認し、またそれぞれの役割を解明したいと思います.

まずjQuery(・・・).***()はjQuery()関数のプロパティ又はメソッドです。正確に言えば、これらは new演算子とjQuery()コンストラクタ関数によって生成されるインスタンスオブジェクトのプロパティ又はメソッドであり、当該のインスタンス(=thisキーワードで参照出来る)から参照されます。そしてそれは決して関数オブジェクトであるjQuery自体のプロパティやメソッドではありません

一方、jQuery.***()は関数オブジェクトである変数jQueryのメソッドやプロパティであって、決して、new演算子とコンストラクタ関数によって生成され、init()メソッドにより初期化されるインスタンスオブジェクトのそれらではありません。

端的に言えば、前者はjQueryコンストラクタ関数から生成されるインスタンスオブジェクトのメソッドやプロパティであり、後者はjQuery自身のプロパティでありメソッドです。

ここに、jQueryのプロパティやメソッドは jQuery.extend() メソッドの実行(jQuery.jsの446行以下など)により定義されますますが、その extend() メソッドは 404〜442 行で定義されています。そして実に巧みだと思うのは、その extend() メソッドは、同時にインスタンスオブジェクトのメソッドとして定義されていることです(404行)。こうしてextend()メソッドは2つの機能を担っている訳で、jQueryのメソッド及びjQuery()コンストラクタ関数によるインスタンスオブジェクトのメソッドを拡張する手段として機能するようになっています。

そして、この拡張方法がプラグインを自在に作成することを容易に可能としていることも強調すべきjQueryの利点であり、同時にこの複層的構造が jQuery.js を難解にしている一因ともなっているのではないでしょうか?。

▲ToTop

jQuery()とjQueryの各々のextend()による拡張箇所リスト(該当行数リスト)

extend() 関数の実行によって jQuery オブジェクトと jQuery()コンストラクタ関数のインスタンスオブジェクトのそれぞれのプロパティとメソッドが様々に拡張される訳ですが、それらは次のように多用されています。(jQuery.js ver1.2.1 非圧縮版)

▼ jQuery()コンストラクタによるインスタンスオブジェクトの拡張
  • 1855-1941(Event 関係)
  • 2040-2126(Ajax 関係)
  • 2507-2665(Animation 関係)
  • 2904-2991(Offset 関係)
▼ jQueryオブジェクトの拡張
  • 469-1008(基本)
  • 1023-1044(BoxModelチェック)
  • 1139-1565(DOM 関係)
  • 1943-1976(DOM Ready 関係)
  • 2137-2506(Ajax 関係)
  • 2693-2738(Animation 関係)

インスタンスオブジェクトの拡張に241行が、そしてjQueryオブジェクトの拡張に1438行も充てられています。合計すると1679行となり、これらにextend()の定義の為の行数39行(404-442行)を加えた1718行は、全行数2965行の約58%を占めることになります。こうしてextend関数はjQuery.jsの1つのキーとなる関数と言えます。

▲ToTop

jQuery.jsインクルード時に定義されるグローバル変数 jQuery のプロパティとメソッド

インクルード時に定義されるjQueryオブジェクトのプロパティとメソッド図。クリックすると拡大図を表示します。

以上を踏まえて、jQuery.js インクルード時に定義されるオブジェクトやそのプロパティを一覧してみます。例えば firebug の DOM インスペクターでそれを確認することが出来ます。(左図参照)

左図はグローバルオブジェクトとして $ と jQuery が定義されていること、そして jQuery オブジェクトの64項目のプロパティ及びメソッドがあることを示すものです。なお、uiプロパティは jqueryui.js をインクルードしているために発生しているもので、jQuery.jsだけのインクルードの場合には生じません。

▲ToTop

 

■ コメントの投稿 ■

管理者にだけ表示を許可する

●トラックバック●

■トラックバックURLはこちら■
http://hkom.blog1.fc2.com/tb.php/575-91b6d54f

●参照元一覧●

<provided Fc2>
<provided i2i>

▲ToTop

 90%近いシェアを握っているインターネットエクスプローラの描画エンジンを利用したタブbrowser。沢山のタブbrowserがあるが、多機能、カスタマイズフリー、スクリプト利用等で一日の長がある。Gekkoエンジンへの対応も行われ、IEからの自立独立の方向に向かっている。2005年7月にはIE7が登場する見通しの中で、今後の発展が望まれる。

 多様なCSS作成支援機能を備えた、タグ入力式 HTML&CSS作成支援エディタ。スキンデザインもすっきりしている。テキストエディター上で作成するよりも確実で安全にタグ打ちが出来る。
文字コードを選べないのが欠点。

 StyleNote同様のタグ入力式 HTML&CSS 作成支援エディタ。長年使用してきたが現在StyleNoteに乗り換えつつある。

 クリップボード履歴情報を活用する為のソフト。画像まで履歴を取ってくれるのが嬉しい。このソフトを使わない日は絶対ない程に重宝し、愛用している。

 起動中のウィンドウの「コピーできない」説明文などの文字列を取得し、コピー可能な文字データにするツール。何かと便利。

 ストリーミングデータを保存することが出来るソフト。動画利用には不可欠なソフトだ。

 無料ながらレイヤー機能を有し、スクリプトによる拡張も可能な、sleipnir作者が提供している優れもの画像編集ソフト。

 画面キャプチャソフトと言えばこれに勝るものなし、ではないだろうか? 様々な取得方法を有しており、ブログ作成にもHomepage作成に不可欠だ。Jtrimと並んでWoodyBellsの作品。

 複数ファイルの同時編集は出来ないが、透過pngも作れる画像編集ソフト。
(以下当該サイトから抜粋)初心者にも簡単に操作が出来るフォトレタッチソフトです。多くの加工機能で画像に様々な効果を与えることができます。非常に軽快に動作するため、ストレスなく操作できます。

 Animation Gifファイルを作れる無料ソフト。

 キャプチャソフト。画面内にサイト全体が表示しきれない場合でも、これを使えば全体をキャプチャすることが出来る。

 画像処理。画像のフォーマット変換のみならず、色数やサイズ、圧縮率の変更まで一括処理できてしまう『BatchGOO!』は、大量の画像をまとめて処理したいときに大変便利なソフト。BMP, TIFF, JPEG, PCX, PNG の相互変換をはじめ、色数・サイズ・解像度の統一、JPEG圧縮率の調節など、ホームページ用の画像や携帯電話用の壁紙を揃えるのに抜群の相性を見せる。(Vectorの当該ソフト紹介頁より抜粋引用)

 名前から直ぐに想像が付くように画像のサイズを測るためのソフトだ。Homepage作成には欠かせない。2カラム、3カラムのレイアウトを行う場合に大変重宝する。

 ランチャーソフトは沢山あるが、中でもこれが一押しだ。2年以上使ってきたがその操作性には毎日満足している。これを使い始めてからデスクトップには一切のアイコンを表示することをやめてしまった。

 AdobeReader7によって、起動時間が長すぎるという長年のユーザーの不満はある程度解消した。そのためこの高速化ソフトは存在価値が低下してしまったかもしれない。AdobeReader6迄はこのソフトによる起動高速化で恩恵を受けてきた。

 IE専用が難点だが、様々なサイト内でIDやパスワードを入力するのに重宝するソフト。コンテキストメニューから簡単に起動できるのがGood! sleipnir等のIEの描画エンジンを利用しているブラウザでも使える。

 利用しているパソコンの諸元値を取得するには、このソフトがベストだ。インストール済みソフトの一覧が取得できるのも嬉しい。

 WMPは機能が豊富なだけ重い。RealPlayerも同様だ。そこでMedia Player Classicを使いたい。動作が軽快なだけではなく、対応しているファイル形式もすこぶる多く、これひとつで、wmvもrmも表示できてしまうのだから凄い! 数多あるMedia Playerの王様と言えるだろう。

 自宅でPCを起動しているときには必ず起動しているメディアプレーヤー。何かと過剰なWinampよりも、起動も速くスキンはシンプルだ。

 DivX, Xvid, Mov, Vob, Mpeg, Mpeg4, avi, wmv, dv, などの動画をDVD-Video形式に変換できるフリーソフト。クリックするとDVD関連ソフト紹介サイト=「DVDなToolたち」なるHomepageが開きます。

200711031900