1

Тема: JScript: общие приёмы работы

Использование массивов объектов:

// Файл objsarr.js
// JS: Использование массивов объектов в примере.
var oArray = new Array();
oArray[0] = new Object();
oArray[0].str = "zero";
oArray[0].dig = 0;
oArray[1] = new Object();
oArray[1].str = "one";
oArray[1].dig = 1;
test(oArray);

function test(obj){
    obj[0].NewVal = "new";
    WScript.Echo(    "len: "+obj.length.toString() +"\n"+
    "test 0: string = "+obj[0].str +"; digit = "+obj[0].dig.toString()+" "+obj[0].NewVal+"\n"+
    "test 1: string = "+obj[1].str +"; digit = "+obj[1].dig.toString()
    );
}

Автор примера - -red-.

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

2

Re: JScript: общие приёмы работы

В JS существует сокращенная запись объектов.
new Object() можно записать как {}
new Array() можно записать как []
new RegExp() можно записать как //
Предыдущий пример от -red- можно записать так:

var oArray=
 [
  {
   str:"zero",
   dig:0
  },
  {
   str:"one",
   dig:1
  },
 ];

 WSH.echo(toJSON2(oArray))

 // -----------------------

 function toJSON1(s)     // сериализация в JSON одноуровневой структуры простых типов
 {
  var r=[];
  for(var i in s)
   r.push('"'+i+'":'+'"'+s[i]+'"')
  return "{"+r.join(",")+"}";
 }

 function toJSON2(s)    // сериализация в JSON массива одноуровневых структур простых типов
 {
  var r=[];
  for(var i in s)
   r.push(toJSON1(s[i]))
  return "[\r\n "+r.join(",\r\n ")+"\r\n]";
 }

Функции toJSON1() и toJSON2() удобно использовать для отладки и для сериализации данных JS, для сохранения готовых данных в файл или для обмена данными по сети. Формат удобен тем, что для его превращения данных из текста обратно в структуру JS достаточно его считать в строку и выполнить над ней eval().

Кроме того, можно не использовать метод .toString() - с этим прекрасно справляется неявное преобразование типов.

Автор примера - fps.

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

3

Re: JScript: общие приёмы работы

Использование замыканий:

function makeaddfunc(x){
    return function(y){
        return x + y;
    }
}
plusThree = makeaddfunc(3);
plusFour = makeaddfunc(4);

WScript.Echo(plusThree(5));
WScript.Echo(plusFour(5));

В примере создаются функции plusThree и plusFour, которые увеличивают свой аргумент на число 3 и 4 соответственно. При этом не пришлось объявлять и описывать каждую функцию отдельно.

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