javascriptでconsole.log()でオブジェクトのインスタンスを調べたときに何が表示されているのかがよくわかりません。
具体的に以下のコードで、
function Teki(){ this.hp = 100; } Teki.prototype.die = function(){ console.log("やった! 敵を倒した!"); }; //ドラゴンを作る function Dragon(){ Teki.apply(this,arguments); //Teki(); } Dragon.prototype = new Teki; //攻撃してHPを教えてもらう Dragon.prototype.attack = function(){ console.log("ドラゴンの攻撃! ドラゴンのHPは"+this.hp+"だ!"); }; var d1 = new Dragon(); //インスタンスをつくる console.log(d1);
実行結果が、
➀▼Dragon {hp:100} ➁ hp:100 ➂ ▼__proto__:Teki ➃ ▶attack:f() ➄ hp:100 6⃣ ▶__proto__:Object
上記のようになります。
現在の私の認識だと、上記プログラムが実行されると、
d1インスタンスはhpプロパティと__proto__プロパティを持つ。
hpプロパティは100、__proto__プロパティはDragon.prototypeオブジェクトを指し示している。
Dragon.prototypeは、hpプロパティ・attackプロパティ・__proto__プロパティを持っている。
hpプロパティは100、attackプロパティは関数、__proto__プロパティはTeki.prototypeオブジェクトを指し示している。
というものなのですが、
(1)上記の認識で間違いないでしょうか?
(2)上記の認識に基づいて考えると、➀行目のDragonや➂行目のTekiなどが何を示しているのかよくわかりません。➀、➂行目に限らず結局全体的に何を示しているのかよくわからない状況です。
➀~6⃣行目まで具体的に何を示しているのでしょうか?
(3)結局console.log()でオブジェクトを調べたときに何を示しているのかを知りたいのですが、ドキュメント・書籍など、どこを調べればよいでしょうか?
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/01 02:17