Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Калькулятор с методами. Не работает)) (https://javascript.ru/forum/misc/28807-kalkulyator-s-metodami-ne-rabotaet.html)

Huruffus 03.06.2012 16:34

Калькулятор с методами. Не работает))
 
Создайте объект calculator с тремя методами:

readValues() запрашивает prompt два значения и сохраняет их как свойства объекта
sum() возвращает сумму двух значений
mul() возвращает произведение двух значений


var calculator = {
			readValues: function() {   // метод 1 новые свойства
					var NewPar1 = prompt('новое свойство');
					var Par1 = prompt('его значение');
					var NewPar2 = prompt('новое свойство');
					var Par2 = prompt('его значение');
					calculator.NewPar1 = Par1;
					calculator.NewPar2 = Par2;
				},
			sum: function() { //method 2 сумма свойств
				var sums;
				sums = calculator.NewPar1 + calculator.NewPar2;
				return sums;
				alert(sums); // alert не работает
				}
			}
			calculator.readValues();
			calculator.sum();
		
			getKeysCount(calculator);
			
			
			
			
			// проверяем колличество свойств в объекте
			function getKeysCount(calculator) {
				var counter = 0;
				for (var key in calculator) {
					counter++;
				}
				return counter;
				alert(counter);  // alert работает только тогда, когда переменная counter объявлена вне функции и alert вне функции тоже
			}

beard 03.06.2012 16:50

return counter;
alert(counter);

return counter; возвращает результат работы функции getKeysCount и на этом функция прекращает свое выполнение
т.е. alert(counter); нужно написать перед return counter;

+

var Par1 = prompt('его значение');
var Par2 = prompt('его значение');

prompt возвращает строку, т.е. ты складываешь строки, нужно прежде преобразовать их в целочисленный тип

Huruffus 03.06.2012 17:08

ага, спасибо большое! :)

Huruffus 03.06.2012 17:13

объясните пожалуйста, что делает return?
да, она возвращает значение. Как это?
куда что возвращается?

почему alert'ом возвратить нельзя?

я читал в "учебнике" про неё, но это всё что я понял

beard 03.06.2012 17:21

http://javascript.ru/return

я же написал
Цитата:

return counter; возвращает результат работы функции getKeysCount
продолжение: на место вызова, можно записать это значение в переменную
var resultGetKeysCount = getKeysCount(calculator);


http://javascript.ru/alert
это всего навсего модальное окно, ничего не возвращает

Huruffus 03.06.2012 22:33

Дак скажите пожалуйста, что значит "возвратить"?

отредактировал:
и есть ли возможность выводить не в модальное окно, а в какое-нибудь поле на html странице?

beard 03.06.2012 23:23

Are you understand russian? :-E

Раед 03.06.2012 23:38

Цитата:

Сообщение от Huruffus
есть ли возможность выводить не в модальное окно, а в какое-нибудь поле на html странице?

Есть

Цитата:

Сообщение от Huruffus
Дак скажите пожалуйста, что значит "возвратить"?

Вам уже сказали
Цитата:

Сообщение от beard
var resultGetKeysCount = getKeysCount(calculator);

После выполнения этого кода в переменную resultGetKeysCount попадёт значение, стоявшее после return в функции getKeysCount

beard 04.06.2012 00:38

Цитата:

Сообщение от Maxmaxmахimus
настоящие отцы калькулятор делают так

да, забавно

Это ж надо так додуматься запедалить :)

У меня в окне слышно что кто-то кричит хором УРА, УРАА, УРААААААА! Интересно с чем это связано :)


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