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>
<< 前へ | 次へ >> |