У меня есть проблема, чтобы понять это, даже пошатываться в Интернете. Вот мой сниппет в javscript:Наследование прототипа Javascript с объектами в объектах
TEST=function(){};
TEST.prototype={
b:{
b1:"",
b2:{}
}
};
//Instance 1
var first=new TEST();
first.b.b1="TEXT";
//Instance 2
var second=new TEST();
console.log("Result",second.b.b1);
консоли журнала будет выводить «TEXT», и я хочу «». Поэтому мне интересно, почему я получаю этот результат и почему он меняет прототип «ТЕСТ» (это моя основная проблема), при создании нового экземпляра и затем задании значений?
Я получил помощь от Берги и Миколы (спасибо) и дубликата. Но я все еще думаю, что я потерял ресурс по этому поведению и задаюсь вопросом, почему он построен таким образом? При работе над экземпляром нет необходимости обновлять прототип.
Большое спасибо, я перестрою свой конструктор. Но я не могу понять логику, почему first.b.b1 и first .__ proto __. B.b1 и window.TEST.prototype.b.b1 - то же самое? – Oddis
@Oddis Потому что есть только один объект, а 'TEST.prototype.b' и' first.b' и 'second.b' все указывают на это – Bergi
Благодаря Берги и Николаю, и я принимаю это. Но я думаю, что я потерял ресурс по этому поведению. Еще раз спасибо. – Oddis