Урок 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 = new Object()
WObject.Name = ".."
WObject.Ext = ""
WObject.Size = ""
WObject.Date = ""
WObject.Attrib = ""
WObject.Path = CurDir
DataL.push(WObject)

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

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

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

d = new Date();
a = new Array(10);
o = new Object()

Последняя строка создает пользовательский 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=new Object();
//Функция
NewFunction = function (x,y){return x+y;}
//Массив
NewArr = new Array(2);
 
//Устанавливаем элементы массива NewArr
NewArr[0] = 100;
NewArr[1] = "Строка кода";
NewArr[2] = "200";
 
//Присваиваем значения переменным main_x и main_y                                                                                                                                                                                                                                                                                                                                                                                                                                                                               js object
main_x = 25;
main_y = 50;
 
//Устанавливаем свойства для JS_OBJECT
JS_OBJECT.a1 = main_x;
JS_OBJECT.a2 = main_y;
JS_OBJECT.a3 = NewArr;
JS_OBJECT.a4 = NewFunction;
 
//Переменная list_arr будет хранить элементы JS_OBJECT                                                                                                                                                                                                                                                                                                                                                                                                                                                                         js object
list_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_y
var main_x = 25, main_y = 50;
//Переменная list_arr будет хранить элементы объекта js_object                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              jscript объекты
var list_arr="Элементы объекта js_object:\n"
 
//Функция
JsFunction = function (x,y){return x+y;}
//Массив, Устанавливаем элементы массива JsArr
JsArr = new Array(100,"Строка кода","200");
//Устанавливаем свойства объекта js_object - измененный вариант                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       js создание объекта
var js_object = {a1:main_x, a2:main_y, a3:JsArr, a4:JsFunction};
//*********************************************************************
 
//Переменная list_arr будет хранить элементы js_object
list_arr="Элементы объекта js_object:\n"
 
for (list in js_object){
     list_arr+=js_object[list] + "\n";
}
 
with(WScript){
    Echo(list_arr);
 
    //Получаем доступ к свойствам                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        js object
    Echo(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«, где тоже есть похожие примеры, но уже на другом языке программирования

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