Объекты не имеют автоматической ссылки на содержащиеся в них объекты, поэтому в объекте inner
нет встроенного способа добраться до outer
или config
.Вам нужно передать объект явно.
Таким образом, вам нужно определить его как:
inner_function: function(config, item_1, item_2) {
console.log(config.var1);
}
и назвать его как:
document.config.outer.inner.inner_function(document.config, i1, i2);
Если вы хотите бытьЧтобы получить доступ к контейнерам без передачи их в качестве аргументов, вам необходимо явно указать их в объекте.
var configs = {
init: function() {
this.var1 = 'variable 1',
this.var2 = 'variable 2'
},
outer: {
inner: {
inner_var1: 'inner variable 1',
inner_var2: 'inner variable 2',
inner_var3: 'inner variable 3',
inner_function: function(item_1, item2) {
console.log(this.parent.parent.var1);
}
}
}
}
configs.outer.inner.parent = configs.outer;
configs.outer.parent = configs;