Урок 4 по JScript — класс Object, создание объекта JS

Урок 4 по JScript — класс Object, создание объекта JS Программирование на JSCRIPT

Всем привет, с вами автор блога scriptcoding.ru. Сегодня мы рассмотрим встроенный класс Object, который отвечает за создание JScript объекта.

И так, мы рассмотрим процесс создания внутреннего объекта JS. Я бы не затрагивал эту тему, если бы не одно обстоятельство, просто сейчас я пишу скрипт «Файловый менеджер» на языке JScript, если что не получается то я советуюсь на форуме forum.script-coding.com, так вот, я накинул общий код для менеджера, и показал его на форуме, хотелось просто узнать, насколько правильно я пишу код, как оказалось…код далёк от «идеала«.

Один из форумчан показал свой стиль написания, который резко отличался от моего, а именно, мне были непонятны следующие строки:

data_array.push({ name:"..", ext:"", size:"", date:"", attr:"", path:cur_dir, isfld:null});

С функцией push (класс Array) я познакомился только когда просматривал примеры для класса WindowSystemObject, и считал, что она может добавлять в массив только простые значения. Вот что было у меня прописано:

WObject =newObject()WObject.Name=".."WObject.Ext=""WObject.Size=""WObject.Date=""WObject.Attrib=""WObject.Path= CurDirDataL.push(WObject)

Как видите, отличия есть, просто я учился программировать на языке Pascal, а с C++ познакомился позднее, но проблема не в этом, а в том, что я не мог понять синтаксис вида:

var point ={ x:2.3, y:1.2};

Как оказалась, это из области JavaScript, а именно, создание пользовательских JS объектов. И так, какое представление было у меня: язык JScript предоставляет пользователю пять внутренних классов: Array, Math, String, Enumerator и Date, плюс, есть возможность произвести создание собственного — Object, для их объявления используется ключевое слово new, например:

d =newDate();a =newArray(10);o =newObject()

Последняя строка создает пользовательский js объект, который будет связан с переменной o.

JS ОБЪЕКТЫ

JS ОБЪЕКТЫ - создание

Хорошо, теперь давайте рассмотрим следующий пример:

//*********************************************// js объекты - JScript//jscript_creat_object.js//******************************************** var JS_OBJECT;var NewFunction;var NewArr;var main_x, main_y;var list_arr; //КлассJS_OBJECT=newObject();//ФункцияNewFunction =function(x,y){return x+y;}//МассивNewArr =newArray(2); //Устанавливаем элементы массива NewArrNewArr[0]=100;NewArr[1]="Строка кода";NewArr[2]="200"; //Присваиваем значения переменным main_x и main_y js objectmain_x =25;main_y =50; //Устанавливаем свойства для JS_OBJECTJS_OBJECT.a1= main_x;JS_OBJECT.a2= main_y;JS_OBJECT.a3= NewArr;JS_OBJECT.a4= NewFunction; //Переменная list_arr будет хранить элементы JS_OBJECT js objectlist_arr="Элементы класса JS_OBJECT:n" for(list in JS_OBJECT){ list_arr+=JS_OBJECT[list]+"n";}WScript.Echo(list_arr); //Получаем доступ к свойствамWScript.Echo(JS_OBJECT.a2);WScript.Echo(JS_OBJECT.a3[1]);WScript.Echo(JS_OBJECT.a4(3,5));

Пример не есть сложный, тут мы создали JS объект (JS_OBJECT=new Object()), далее присвоили ему свойства a1 и a2, они хранят простые значение, a3 – массив, а a4 – позволяет получить доступ к функции. Цикл for in позволяет получить доступ к свойствам заданного класса. Хорошо, сделали мы создание объект JS (JScript), и вроде всё даже работает, но вот давайте посмотрим на второй пример:

//***********************************************// js объекты - JScript//1_jscript_creat_object.js//*********************************************** var JsFunction;var JsArr;//Присваиваем значения переменным main_x и main_yvar main_x =25, main_y =50;//Переменная list_arr будет хранить элементы объекта js_objectjscript объектыvar list_arr="Элементы объекта js_object:n" //ФункцияJsFunction =function(x,y){return x+y;}//Массив, Устанавливаем элементы массива JsArrJsArr =newArray(100,"Строка кода","200");//Устанавливаем свойства объекта js_object - измененный вариант js создание объектаvar js_object ={a1:main_x, a2:main_y, a3:JsArr, a4:JsFunction};//********************************************************************* //Переменная list_arr будет хранить элементы js_objectlist_arr="Элементы объекта js_object:n" for(list in js_object){ list_arr+=js_object[list]+"n";} with(WScript){Echo(list_arr); //Получаем доступ к свойствамjs objectEcho(js_object.a2);Echo(js_object.a3[1]);Echo(js_object.a4(3,5));}

Тут мы использовали такое понятие как объектный литерал:

new_object ={a1:main_x, a2:main_y, a3:new_arr, a4:new_function};
jscript объекты - создание

Объектный литерал — это список разделенных запятыми пар «свойство:значение«, заключенный в фигурные скобки. Как видим, тут сначала идёт имя свойства, а после двоеточия ему присваивается значение. Переменная будет объектом js, хотя ключевое слово js Object и не используется, что бы в этом убедится, просто вызовите функцию typeof:

WScript.Echo(typeof(new_object));

Как видим, второй вариант создания JS объекта более «взрослый», в статье «Объявление пользовательских функций JScript» подобный приём также использовался.

Скачать архив с примерами

Ну что же, на этом пока все, как дополнение можете рассмотреть «8 урок по VBScript«, где тоже есть похожие примеры, но уже на другом языке программирования

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий