Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.09.2019, 18:06
Интересующийся
Отправить личное сообщение для Pavel_Hi Посмотреть профиль Найти все сообщения от Pavel_Hi
 
Регистрация: 05.08.2019
Сообщений: 10

Наследование от класса родителя внутри объекта.
Всем привет, подскажите пожалуйста, как создать новый класс внутри объекта который будет унаследовать функции родительского класса?

Вот пример.
let obj = {
    Users: class {
        constructor() {...} 
        getHello () {
            return "Hello"
        }
        getBuy() {
            return "Goodbye" 
        }
    },
    // этот кусок кода не верный, тут надо создать новый класс
    UsersMans:class UsersMans extends this.Users:{ 
         constructor(){
               super()
          }
    }
}

Нужно создать внутри объекта obj класс UsersMans и в тоже время унаследовать функции родителя Users.
class UsersMans extends this.Users так тоже не верно
Подскажите пожалуйста
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2019, 19:24
Интересующийся
Отправить личное сообщение для Pavel_Hi Посмотреть профиль Найти все сообщения от Pavel_Hi
 
Регистрация: 05.08.2019
Сообщений: 10

Спасибо за ответ, но вылазит ошибка:

Uncaught SyntaxError: Unexpected token .
Ругается на точку
Ответить с цитированием
  #3 (permalink)  
Старый 17.09.2019, 20:26
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Pavel_Hi
class UsersMans extends this.Users так тоже не верно
У вас же явно this указывает не на obj. Объявите классы, а затем создайте нужный объект...
{
	class Users {
		constructor() {}
		getHello() {
			return "Hello";
		}
		getBuy() {
			return "Goodbye";
		}
	}

	class UsersMans extends Users {
		constructor() {
			super();
		}
	}

	let obj = { Users, UsersMans };
	console.log(obj);
}


UPD JavaScript — это не Java, вы можете использовать геттеры...
{
	class Users {
		constructor() {}
		get hello() {
			return "Hello";
		}
		get buy() {
			return "Goodbye";
		}
	}

	class UsersMans extends Users {
		constructor() {
			super();
		}
	}

	let obj = { Users, UsersMans };
	console.log(obj);
}


UPD2 Также исправьте имена классов!
{
	class User {
		constructor() {}
		get hello() {
			return "Hello";
		}
		get buy() {
			return "Goodbye";
		}
	}

	class UserMan extends User {
		constructor() {
			super();
		}
	}

	let obj = { User, UserMan };
	console.log(new obj.User, new obj.UserMan);
}

Последний раз редактировалось Malleys, 18.09.2019 в 08:19.
Ответить с цитированием
  #4 (permalink)  
Старый 18.09.2019, 15:16
Интересующийся
Отправить личное сообщение для Pavel_Hi Посмотреть профиль Найти все сообщения от Pavel_Hi
 
Регистрация: 05.08.2019
Сообщений: 10

Спасибо вам огромное!!
Все работает!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование класса WishMaster Общие вопросы Javascript 10 14.10.2015 21:41
Как получить родителя объекта? ilya2306 jQuery 1 21.11.2014 15:21
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Обработка события элемента внутри создавшего его объекта pauluss Общие вопросы Javascript 10 10.09.2010 17:01
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00