SQLの窓

2009年09月03日


JavaScript : オブジェクトとインスタンスとプロパティの継承

Object オブジェクトは、JavaScript の全てのオブジェクトの元となるオブジェクトですが、
JavaScript はオブジェクトに対してプロパティを自由に追加できます。

Object.myData = 20090903;
Object.myFunc = function() {
alert(this.myData);
};

しかし、このプロパティは Object から参照した時に利用できますが、インスタンス化
したオブジェクトからは参照できません

Object.myData = 20090903;
Object.myFunc = function() {
alert(this.myData);
};
obj = new Object();
.
.
.

<INPUT type=button value="実行1" onClick='Object.myFunc();'>
<INPUT type=button value="実行2" onClick='obj.myFunc();'>

※ 実行1は、20090903 が表示される
※ 実行2は、エラー

重要
インスタンスからも利用できるようにするには、prototype プロパティにセットします。
この場合、同じ名前でセットされていた値は、prototype にセットされた内容で上書き
されます( ローディング後に上書きされるようです )

Object.myData = 20090903;
Object.myFunc = function() {
alert(this.myData);
};
Object.prototype.myData = 20091231;
Object.prototype.myFunc = function() {
alert(this.myData+"/prototype");
};
obj = new Object();
.
.
.

<INPUT type=button value="実行1" onClick='Object.myFunc();'>
<INPUT type=button value="実行2" onClick='obj.myFunc();'>

※ 両方とも 20091231/prototype が表示される

さらに、インスタンスにもプロパティを追加できます
Object.myData = 20090903;
Object.myFunc = function() {
alert(this.myData);
};
Object.prototype.myData = 20091231;
Object.prototype.myFunc = function() {
alert(this.myData+"/prototype");
};
obj = new Object();
obj.myFunc2 = function() {
alert(this.myData+"/インスタンス");
};
obj2 = new Object();

この場合、obj のみに追加され事になります( obj2 にmyFunc2 はありません )

重要
そして、結果的に、Object.prototype に追加されたものは、他のオブジェクトで
使用できる事になります

String.myFunc();
"abc".myFunc();
x = new String();x.myFunc();

いずれも同じ結果となります



【JavaScript オブジェクトの最新記事】
posted by lightbox at 2009-09-03 11:13 | JavaScript オブジェクト | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり