Уроки и упражнения



Объекты

До настоящего момента мы употребляли слово "объекты" в обычном неформальном смысле слова, как нечто, с чем мы имеем дело. А имели мы дело до настоящего момента с числами, словами, битами и функциями. Теперь мы хотим перейти к формальному определению объекта и, чтобы не путать формальное понятие объекта с неформальным, термин "объект" в формальном смысле слова мы будем писать курсивом. Но прежде, чем перейти к формальному определению, рассмотрим несколько примеров.
1.
Перейдите в редактор и напечатайте:

pp = {x: 5, y: 3};
show(pp.x);
show(pp.y);


Здесь pp - объект, pp.x и pp.y его элементы (элементы объекта часто ещё называют свойствами объекта).
2. Вот другой пример:

ppp = {a: 5, b: {aa: 33, bb, 44}};
show(ppp.a);
show(ppp.b.aa);
show(ppp.b.bb);


В этом примере один из элементов объекта ppp сам является непримитивным объектом ppp.b и у него есть свои элементы ppp.b.aa и ppp.b.bb.

Определение (в четыре этапа).
1. Числа, слова и биты являются объектами.
2. Функции, в которых аргументы и возвращаемое значение являются объектами, являются объектами.
3. Обозначениями называются пары (имя: значения), в которых имя - слово, а значение - объект.
4. Конечное множество обозначений, является объектом.
Чтобы создать объект, нужно напечатать команду:

obj = {name1: value1, name2: value2, ...}

здесь obj - имя вновь создаваемого объекта, name1, name2, ... - некоторые слова, value1, value2, ... - ранее созданные объекты. После того, как объект obj создан, объекты value1, value2, и т.д. получают новые имена: obj.name1 становится именем объекта value1, obj.name2 становится именем объекта value2, и т.д.
Коротко резюмируя, можно сказать, что любое конечное множество объектов можно назвать новым объектом и дать ему имя. Простейшим объектом является пара вещественных чисел: pp = {x: 5, y: 3} Число 5 получает имя pp.x, а число 3 получает имя pp.y. Сам же объект pp по существу является точкой на плоскости, имеющей кординаты pp.x и pp.y.
Как Вы видите из определения, элементом объекта может быть функция. Например, пусть

fun=function(x){
    return(3*x);
}

- функция, которая просто умножает аргумент на число 3. Пусть

pp = {a: 3, b: fun};

Мы создали объект, в котором первый элемент равен числу 3, а второй элемент равен функции fun. Если после этих определений в редакторе мы напечатаем команды:

show(pp.a);
show(pp.b(5));

то увидим в консоли следующее:

pp.a = 3
pp.b(5) = 15

Перейдём к упражнениям. Создайте небольшую программу, в которой ключевое место - это функция, возвращающая непримитивный объект. Более подробно, начните программу так:

starttest;
fun=function(x){

а закончите так:

x=3.5;
show(fun(x).a);
show(fun(x).b);

Функция fun должна возвращать пару чисел: fun(x).a = 2*x и fun(x).b = 3*x. Действуйте!
Проектирование/Окно программирования
Your browser does not support the HTML5 canvas tag.