Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скрипт не работает (https://javascript.ru/forum/misc/30380-skript-ne-rabotaet.html)

Виктор1 02.08.2012 15:18

Скрипт не работает
 
Добрый день. Только начал с нуля изучать JavaScript. Купил детскую книгу (думал так легче будет Вашу книгу изучать) в ней приводится следующий скрипт:
<script>
var X1=1, X2=5, X3=5, res;

//////////////////////////////////////////////////
//Определение функции-конструктора объектного типа MyObjectType:
function MyObjectType ( Number )
{
//Свойство number:
this.number = Number;

//Метод Aver():
this.Aver =
function (x1,x2,x3)
{
return ( number + x1 + x2 + x3 ) / 4;
}
}
/////////////////////////////////////////////////

//Создание объекта типа MyObjectType:
var ob1 = new MyObjectType (5);

//Вызов метода Aver() для объекта ob1 с целью вычисления
//среднего значения, характеризующего объект ob1:
res = ob1.Aver (X1, X2, X3);

//Вывод вычисленной характеристики объекта ob1 в окно сообщений:
alert (res);
</script>
Который не работает. Выдает ошибку number is not defined. Подскажите почему не работает.

vadim5june 02.08.2012 15:55

return ( this.number + x1 + x2 + x3 ) / 4;

Виктор1 06.08.2012 18:08

Спасибо. Продолжение темы Скрипт не работает
<script>
var x1, x2, x3, res;
x1 = window.promt ("input x1", "");
x2 = window.promt ("input x2", "");
x3 = window.promt ("input x3", "");
res=(Math.sin(x1)+Math.sin(x2)+Math.sin(x3))/3;
document.write ("Result = "+res);
</script>

Hekumok 06.08.2012 18:15

Виктор1,
заключайте скрипт в
[js][/js]
или в
[js run][/js]
для "проигрывания"

Dim@ 06.08.2012 18:19

Виктор1,
о эта вечная ошибка (я её тоже когда то допускал) - надо писать не
window.promt
а
prompt
"p" - предпоследняя буква

Виктор1 06.08.2012 19:02

Спасибо всем. Решил тут поэксперементировать и так видоизменил,
<script>
var x1, x2, x3, res = (Math.sin(window.prompt("input x1", "")) + Math.sin(window.prompt("input x2", "")) + Math.sin(window.prompt ("input x3", "")))/3;
document.write(res)
</script>
Все на первый взгляд работает. Что здорово, язык позволяет использовать другие функции в качестве аргумента.
Но потом обратил внимание - оба скрипта выдают неправильные ответы, например если вводить 90 три раза - то ответ должен быть 1. А ответ 0,893...:-E

Виктор1 06.08.2012 19:05

Забыл, заметил что не поставил точку с запятой после последнего оператора, исправил, но все работает также, результат тот же. Получается интерпретатор не видит отсутствие символа. Интересно... Но это к делу не относится

oneguy 06.08.2012 19:15

Цитата:

Сообщение от Виктор1
Но потом обратил внимание - оба скрипта выдают неправильные ответы, например если вводить 90 три раза - то ответ должен быть 1. А ответ 0,893...

Math.sin считает синус в радианах. Если нужно в градусах, то можно преобразовать:
Math.sin(x*180/Math.PI)


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