@RuslanTimuziyev
Немного кодер

Как сделать обращение к свойству через this внутри конфига нового экземпляра созданного на основе класса?

В моем экземпляре есть свойство VIEW, которое в данный момент является функцией внутри объекта-аргумента(conf) нового экземпляра MyClass. Сейчас все работает, но как сделать так, чтобы VIEW стал строкой(или объектом) и объявлялся по типу
VIEW: `${this.DATA.title}`
при этом, чтобы this возвращала область conf, где this.DATA.title равна 'Title'. В данном случае this возвращает Window.

class MyClass {
  constructor(conf) {
  	/** public props */
  	this.ENTRY = conf.ENTRY;
  	this.DATA = conf.DATA;

  	/** instance methods */
  	// get dom element
  	conf.$ = (el) => {
		var all = document.querySelectorAll(el);
		return all.length > 1 ? all : document.querySelector(el);
	}

  	/** inits */
  	conf.$(this.ENTRY).innerHTML = conf.VIEW();
  	conf.LOGIC();
  }

  die() {
  	conf.$(this.ENTRY).innerHTML = '';
  }
}






var app = new MyClass({
	ENTRY: '#app',

	DATA: {
		title: 'Title'
	},

	VIEW() {
		return `
			<h1>${this.DATA.title}</h1>
		`
	},

	LOGIC() {
		console.log(this.$('h1'))
	},
});
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
и объявлялся по типу
VIEW: `${this.DATA.title}`
Сразу в момент объявления там строка. Примитивная такая, которая ни на какой this уже не ссылается. Ссылалась в момент объявления, но как только стала строкой - всё.

bind, call, apply.
Выберите что вам больше подойдет/понравится.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы