Столкнулся с тем, что JS не ищет свойства прописанные в прототипе во вложенности. Есть ли способ заставить искать вложенные свойства?
var obj = {
a: {}
};
obj.__proto__ = {
a: {
__proto__: {
b: true
}
}
};
console.log(obj.a.b); // undefined
// Нежелательный метод
obj.a.__proto__ = {b:true};
Если я правильно понял, то у на клиенте хранятся настройки в файле, который Вы грузите в приложение, которому могут потребоваться значения отсутствующие в конфигурации пользователя. В таком случаи самый простой вариант динамически расширять конфигурацию пользователя -
let prevSettings = {
a: 1,
b: 1
};
let currentSettings = {
b: 2,
c: 2
};
console.log(Object.assign({}, prevSettings, currentSettings)); // a: 1, b: 2, c: 2
console.log(Object.assign({}, currentSettings, prevSettings)); // a: 1, b: 1, c: 2
Как видно первый вариант создает новый объект но изменяет значения предыдущего объекта, в отличии от второго варианта, который лишь добавляет новые-несуществующие свойства, оставляя существующие нетронутыми.
Если это не подходит, то объясните более подробно.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей