Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2018, 18:56
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

Конструктор объекта
Всем привет! Изучаю JavaScript и столкнулся с недопониманием темы.
Нужно что бы метод plus объекта Vektor вернул сумму двух объектов новым объектом Vektor. Почему через функцию set ошибка не выводится. А если просто объявить конструктор, то выводится. Подскажите пожалуйста.

(function() {
class Vektor {
	constructor(x, y){
		this.x = x;
		this.y = y;
	}
	set(value1, value2) {
	return new Vektor(value1, value2);// Ошибки нет
}

	plus(Vektor){
		/*let newVektor = new Vektor(Vektor.x, Vektor.y); //Ошибка Vektor не конструктор.*/
		let a = this.x + Vektor.x; 
		let b = this.y + Vektor.y;
		Vektor = Vektor.set(a, b);//При использовании сеттера
		return Vektor;
	}
}

console.log(new Vektor(1, 2).plus(new Vecktor(2, 3)));

Последний раз редактировалось VyacheslavBozere, 20.04.2018 в 22:38.
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2018, 22:39
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

Сообщение от Rise Посмотреть сообщение
Что за полукод? Где собственно вызов класса?
(function() {
class Vektor {
	constructor(x, y){
		this.x = x;
		this.y = y;
	}
	set(value1, value2) {
	return new Vektor(value1, value2);// Ошибки нет
}

	plus(Vektor){
		/*let newVektor = new Vektor(Vektor.x, Vektor.y); //Ошибка Vektor не конструктор.*/
		let a = this.x + Vektor.x; 
		let b = this.y + Vektor.y;
		Vektor = Vektor.set(a, b);//При использовании сеттера
		return Vektor;
	}
}

console.log(new Vektor(1, 2).plus(new Vektor(2, 3)));

Последний раз редактировалось VyacheslavBozere, 21.04.2018 в 03:47.
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2018, 03:46
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

Ваше решение лучше. Но вопрос был в другом, почему же в одном случае, когда использую сеттер консоль не ругается, а во втором случае, когда записываю конструктор в методе плюс, он у меня закоментированный, консоль ругается , что это не конструктор. Как бы мне это понять ?

(function() {
class Vektor {
	constructor(x, y){
		this.x = x;
		this.y = y;
	}
	[COLOR="Yellow"]set(value1, value2) {
	return new Vektor(value1, value2);// Ошибки нет[/COLOR]
}

	plus(Vektor){
		[COLOR="Yellow"]/*let newVektor = new Vektor(Vektor.x, Vektor.y); //Ошибка Vektor не конструктор.*/[/COLOR]
		let a = this.x + Vektor.x; 
		let b = this.y + Vektor.y;
		Vektor = Vektor.set(a, b);//При использовании сеттера
		return Vektor;
	}
}

console.log(new Vektor(1, 2).plus(new Vektor(2, 3)));

Последний раз редактировалось VyacheslavBozere, 21.04.2018 в 03:50. Причина: Опечатка
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2018, 14:55
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

Сообщение от Rise Посмотреть сообщение
Потому что название конструктора и параметра метода совпадают.
Но если я передам в него числа 1, 2 или другие переменные, то тоже вылазит ошибка, что конструктор не обьявлен.
Ответить с цитированием
  #5 (permalink)  
Старый 21.04.2018, 16:01
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Config и конструктор объекта AirGraph ExtJS 5 12.09.2015 16:12
Конструктор как свойство объекта kenrike Общие вопросы Javascript 5 01.05.2013 23:55
Как передать элемент jquery в конструктор объекта? nip jQuery 5 09.10.2012 13:08
Передать переменную в конструктор объекта {} hominini Общие вопросы Javascript 11 25.12.2011 08:34
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00