Question1に自分自身を入れ子になった:機能は、プロトタイプ
私は私が気づいたJS、内のオブジェクトとコンストラクタのプロトタイプで実験した
function f(a) {
this.a = a;
this.x = 1
}
function f2(a) {
this.a = a;
this.x = 4
}
f2.__proto__ = f(9);
var of2 = new f2(4);
は何とかF2()のネストを作りますそのprototype -> constructor
で自身が、私は(下記のように)無限のネスティングを持っている:
誰もそのような行動を説明できますか?それとも、ツールによって引き起こされるエラーなのでしょうか?
質問2: それが正常であれば、それはどのようにメモリ内で機能しますか?それは参照に取り組んでいるのですか?それとも、プロトタイプをコンストラクタに挿入するだけですか? 2番目の仮説が真実なら、なぜ私のコンピュータの記憶はまだ綺麗で燃えていないのですか?
Prototypeオブジェクトは、それが属するコンストラクタへの参照を持っています。コンストラクターにはプロパティプロトタイプがあります。 PrototypeはConstructorへの参照を持ちます。つまり、 'f.prototype.constructor === f'です。あなたの質問に答えてください:これは正常です。 – dfsq
**内部プロパティを設定しないでください!** –
'f2 .__ proto__ = f(9);'は何も役に立ちません。あなたは 'f2'関数が継承するオブジェクトとして' undefined'を割り当てています。この操作はちょうど無視されています。 – spanky