JavaScriptのプロトタイプチェインをちゃんと理解する
2008/03/19 20:24
プロトタイプチェーンって何? という質問に答えられますか? 今回はJavaScriptを理解するうえで重要なプロトタイプチェーンという概念についてお話しします。
プロトタイプチェインの終端
では、無限に続くとも思えるプロトタイプチェインですが、その終了条件はなんなのでしょうか。
先に答えを言ってしまうと、「Object.prototypeまで検索すると連鎖終了」ということになります。
コードを使って説明しましょう。以下のようなクラスPersonがあったとします。
function Person() {
}
そして、Personのインスタンスを作成し、メソッド「hello()」を呼び出してみましょう。
var p = new Person(); p.hello();
するとJavaScriptランタイムは、以下のようにメソッドを検索します。
- p.hello
- Person.prototype.hello
- Object.prototype.hello (Person.prototypeオブジェクトはObjectクラスのオブジェクトであるため)
- 検索終了
この例では、Object.prototypeまで辿ってもhello()が見つからないため、未定義のメソッド呼び出しということでエラーになります。
では、ちょっとしたエクササイズをしてみましょう。以下のコードは、正常に動作するでしょうか?(答えは次ページ)
// Object.prototypeにhelloを追加
Object.prototype.hello = function() {
alert("Hello");
}
// Personコンストラクタ
function Person() {
}
// Personクラスのインスタンスを作ってメソッド呼び出し
var p = new Person();
p.hello();
- 特集: JavaScriptのイロハ (17件)
- 昨日のトップ記事
- 2日前
- 3日前
- 4日前
- 5日前
- ホワイトペーパー
-
コンプライアンス強化と顧客との関係強化を両立する
コンテンツ管理システム構築のポイントご案内セミナー<抄録>
-
【ケーススタディ】コミュニケーションセキュリティ情報漏えい対策:メール誤送信による情報漏えいをなくしたい!安心のメールフィルタリング、アーカイブシステムを実現
-
「IronPortはここがすごい!」IronPort製品の優れた機能が満載!
-
デルスケーラブルアーキテクチャでMicrosoft Operations Manager(MOM)2005を使用した Microsoft SQL Server 2005 の管理
-
データセンター入局不要!ハウジング並みの複数台構成を実現するホスティングサービス
- 話題のタグ
iPhone
イロハ
ブラウザ
オープンソース
Opera
CSS 3
Apache
Microsoft
HTML
Tips
小技
Firefox 3
Database
C/C++
Webデザイン
JavaScript
PHP
XHTML
Leopard
Solaris
Java
Ajax
server
Off Topic
Eclipse
Flash
RIA
Apple
SOA
Firefox
入門
フレームワーク
Python
Linux
CSS
iPhone 3G
Safari
Webアプリケーション開発
Adobe
開発環境
Internet Explorer
Google
iPod touch
Mozilla
リファレンス
Mac OS X
ライブラリ
Ruby
仮想化
Windows
話題のタグを見る »
動画再生耐久レース―フル充電からどれだけ耐えた?
心当たりありませんか--あなたの上司がイヤがる5つの話し方
フォームデザイン虎の巻:複数の選択肢を提供する
フォトレポート:技術サポートの悪夢
無料の「Oracle Database XE」で高速バッチ処理:実装のポイント
Firefoxで情報をカンタン・ベンリに整理する
iPhone Safari、Acidテストでは高得点でも…… Firefoxは載らないの?:WebサイトのiPhone 3G対応問題を考える(ソフト編)
WebサイトのiPhone 3G対応問題を考える(ハード編)
フォトレポート:時代を振り返る--「MS-DOS 4」のインストール
SOAと仮想化の関係は?--常に進化を続けるBEAのミドルウェア戦略
ウェブ開発の生産性はどうしたら上がる?--MODIPHI Appsで半日で作るマッシュアップサイト(1)
JailBreakついに:PwnageTool公開
プロジェクトの進行でよくある4つのトラブル
ZDNet Japan Green IT
DELLが掲げる「新・仮想化アセスメントサービス」
ZDNet Japan ホスティング特集
Techno Exchange