MyDataObject.call(this,name,age,mail);このようにしてMyDataObjectをcallしています。これにより、MyDataObjectの内容がthisに実装されます。そして、更にtel/memoプロパティを追加し、showDataメソッドを書き換えています。MySuperDataObjectには、name/age/mailといったプロパティはありませんが、ちゃんとそれらの値は保管されているのがわかります。MyDataObjectの機能がすべてMySuperDataObjectに組み込まれていることがよくわかるでしょう。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※継承を利用したコンストラクタ関数の定義
function 新しい関数 ( …引数… ){
オブジェクト.call ( this, …引数… );
……以下、プロパティ・メソッドの定義を用意する……
}
※サンプルスクリプト
<script type="text/javascript">
<!--
function MyDataObject(name,age,mail){
this.name = name;
this.age = age;
this.mail = mail;
this.showData = function(){
var result = '名前:' + this.name + '\n';
result += '年齢:' + this.age + '歳\n';
result += 'メール:' + this.mail;
alert(result);
}
}
function MySuperDataObject(name,age,mail,tel,memo){
MyDataObject.call(this,name,age,mail);
this.tel = tel;
this.memo = memo;
this.showData = function(){
var result = '名前:' + this.name + '\n';
result += '年齢:' + this.age + '歳\n';
result += 'メール:' + this.mail + '\n';
result += '電話:' + this.tel + '\n';
result += 'メモ:' + this.memo;
alert(result);
}
}
var obj1 = new MyDataObject('山田太郎',18,'taro@yamada');
var obj2 = new MySuperDataObject('田中花子',26,'hanako@flower','090-7777-7777','山田君の彼女です。');
obj1.showData();
obj2.showData();
//-->
</script>
| << 前へ | 次へ >> |