インスタンスにprototypeは自動設定されない? 無理やり設定した場合は、普通のプロパティとして取り扱われる?
質問背景
・単なる興味本位
・インスタンスにprototypeは設定できないのかな、と思いました
・prototypeは予約語ではない(?)ので,普通のプロパティとして使用可能?
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Reserved_Words
var Hoge = function(p1) {
this.p1 = p1;
};
Hoge.prototype = {
m1: function() {
return this.p1;
}
};
var hoge = new Hoge('プ1');
hoge.m1(); //"プ1"
・自動設定されない
hoge.prototype; //undefined
・インスタンスにprototypeは自動的に設定されないようなので、手動設定に挑戦
・目的はないです
・挙動確認したいためだけの単なる興味本位
hoge.prototype = {
m2: function() {
return this;
}
};
・Function オブジェクトではないから?
hoge.m2(); //Uncaught TypeError: hoge.m2 is not a function(…)
・prototypeは予約語ではない(?)ので,普通のプロパティとして使用可能、ということでしょうか?
hoge.prototype.m2(); //Object {}