プロトタイプチェーン

プロトタイプの連鎖について、まぁいわゆるクラスの継承ですよねぇ…たぶん...?
	hoge2 = function( ) {
	    this.c = 3;
	}
	
	hoge = function( num ) {
	    this.num = num;
	};
	hoge.prototype = new hoge2( );
	hoge.prototype.calc = function( ) { return this.num * this.c; };
前回使用したクラスを少し改造してみました。hogeオブジェクトの prototypehoge2オブジェクトを追加します。
暗黙の参照があるのでhoge2のプロパティがそのまま使えます。
    var objC = new hoge( 10 );
    alert( objC.calc() );
よって結果、30が表示されます。

プロパティの有無を調べる

そのオブジェクト自信が持っているプロパティなのかprototypeが持っているプロパティなのかを調べるメソッドです。
    alert( objC.hasOwnProperty("c") );			// false が返る
    alert( objC.hasOwnProperty("num") );		// true が返る
このようにhogeオブジェクトのobjCは「c」プロパティは継承している物ではないのでfalse「num」は 実際持っている物なのでtrueが返ります。

参考サイト

CodeZine-プロトタイプによるJavaScriptのオブジェクト指向