- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScript プロトタイプについて)
JavaScriptプロトタイプでのエラーと解決方法
このQ&Aのポイント
- JavaScriptのプロトタイプに関するエラーについて解説します。
- エラーメッセージ「TypeError: Cannot set property 'totalPrice' of undefined」が返される原因とは?
- プロトタイプでメソッドを定義する際のポイントについて詳しく説明します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
prototypeの意味を誤解していますね。 >TypeError: Cannot set property 'totalPrice' of undefined hamburgerには、prototypeというプロパティが無いのでundefinedが返り、そのundefinedのプロパティに代入しようとしているので失敗します。 案1: hamburger.totalPrice = function(quantity) { return this.price * quantity; } 案2: Menu.prototype.totalPrice = function(quantity) { return this.price * quantity; }
お礼
notnotさま コメントありがとうございます。 「案2」の方を使わせていただきました。 ●コード function Menu(name, price) { this.name = name; this.price = price; } var hamburger = new Menu("ハンバーガー", 100); hamburger.totalPrice = function(quantity) { return this.price * quantity; } var cheeseburger = new Menu("チーズバーガー", 120); Menu.prototype.totalPrice = function(quantity) { return this.price*quantity; } output("太郎は、" + hamburger.name + "を" + hamburger.totalPrice(5) + "円分買いました。"); output("二郎は、" + cheeseburger.name + "を" + cheeseburger.totalPrice(3) + "円分買いました。");