Как получить доступ к имени переменной, назначенному объекту, из конструктора класса в Javascript?

Я хочу написать конструктор, чтобы при каждом вызове объекта свойства CSS создавались с использованием имени переменной, назначенной новому экземпляру класса, плюс уникальная строка. Вот так:

class BigBox{

    constructor(){

        var div_box = document.createElement("div");
        div_box.setAttribute("id", this."_title");
        document.body.appendChild(div_box); 
    }

}


var S1 = new BigBox();

Таким образом, в приведенном выше примере цель состоит в том, чтобы установить идентификатор S1_title, однако это не работает. Что я делаю не так?


person comp1201    schedule 15.03.2019    source источник
comment
Возможно, это поможет вам: stackoverflow.com/questions/29310530/   -  person loic.lopez    schedule 16.03.2019
comment
Вам нужно создать экземпляр класса, используя ключевое слово new: var S1 = new BigBox()   -  person slebetman    schedule 16.03.2019
comment
Спасибо. Исправил это, но все еще не работает.   -  person comp1201    schedule 16.03.2019
comment
Привет. this."_title" не является допустимым javascript, или, по крайней мере, у меня возникли проблемы с его запуском в моей консоли.   -  person TheCrzyMan    schedule 16.03.2019
comment
Я думаю, что это невозможно, а также очень плохая практика, именование переменных не должно влиять на выполнение вашего кода. Вы должны просто передать строку конструктору и использовать ее для именования div.   -  person Alvaro Flaño Larrondo    schedule 16.03.2019


Ответы (1)


Это плохая идея, лучше просто передать заголовок конструктору.

class BigBox{

    constructor(title){

        var div_box = document.createElement("div");
        div_box.setAttribute("id", this."_title");
        document.body.appendChild(div_box); 
    }

}


var S1 = new BigBox("S1");
person Alvaro Flaño Larrondo    schedule 16.03.2019