@Evtera

Как получить ссылку через this?

Доброго времени суток. Есть следующий кейс. В будущем хочу мапить этот массив, но 'как пройти к data через this?

const store = [
  {
    template: {
      data: [],
    },
    settings: {
      get render() {
        console.log('как пройти к  data через this?')
      },
    },
  },
]
  • Вопрос задан
  • 62 просмотра
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Геттер render находится в одном объекте, который под ключом "settings".
А data – в другом объекте, который под ключом "template".

Так что только через store можно "зайти":
const store = [
  {
    template: {
      data: [1, 2, 3],
    },
    settings: {
      get render() {
        console.log(store[0].template.data);
      },
    },
  },
];

store[0].settings.render  // [ 1, 2, 3 ]
Ответ написан
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Только с передачей нужных данных сверху вниз:
class Settings {
    constructor(store) {
        this.store = store
    }

    get render() {
        console.log('store.template.data:', this.store.template.data)
    }
}

class Store {
    constructor(data) {
        this.template = { data }
        this.settings = new Settings(this)
    }
}

let r = new Store([1,2,3])
r.settings.render 
store.template.data: Array(3) [ 1, 2, 3 ]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы