Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как создать объект из класса, если имя класса храниться в перменной))) (https://javascript.ru/forum/misc/76840-kak-sozdat-obekt-iz-klassa-esli-imya-klassa-khranitsya-v-permennojj.html)

Sergey1986 19.02.2019 19:18

Как создать объект из класса, если имя класса храниться в перменной)))
 
Доброго времени суток!
Озадачился задачкой )))
есть класс

class User {

say () {
alert('Привет');
}

}

let nameClass = 'User'

myObject = new nameClass (тут надо как то правильно)
myObject.say

и выведет алерт

вот такйо еще вариент (работает)
let classNameString = 'User';
let myObject = eval("new " + classNameString + "()");
myObject.say

j0hnik 19.02.2019 21:40

class User {

      say() {
        alert('Привет');
      }
    }

    let nameClass = 'User';

    const myObject = (Function('return new ' + nameClass))();

    myObject.say();


где то уже обсуждалось, если хорошо поищите, то найдете.

Sergey1986 19.02.2019 23:39

Спасибо!

Sergey1986 27.02.2019 13:52

Еще вопросик
А как вызвать метод объекта (объект ранее создан)
если объект имя лежит в переменной
let nameClass = 'User';

nameClass.say() (так ошибку выдает)

j0hnik 03.03.2019 06:29

eval(nameClass).say()

Sergey1986 02.05.2019 18:21

Добрый день!
Продолжаю данную ветку...

А если метод объекта в переменной лежит?что типа

class User {

      say(name) {
        alert(name);
      }
    }

    let nameClass = 'User';
    let method = 'say';

    const myObject = (Function('return new ' + nameClass))();

    myObject.method(name); //вот как то надо передать???



Заранее спасибо!

рони 02.05.2019 18:26

Sergey1986,
myObject[method]('test')

Sergey1986 02.05.2019 18:30

Нашел
myObject[action](params);

Sergey1986 02.05.2019 18:31

Спасибо!!!опаздал я со своим ответом на 4 минуты ))))


Часовой пояс GMT +3, время: 09:35.