<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JScript: общие приёмы работы]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=2252</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2252&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JScript: общие приёмы работы».]]></description>
		<lastBuildDate>Sat, 07 Mar 2009 11:20:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JScript: общие приёмы работы]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=20341#p20341</link>
			<description><![CDATA[<p>Использование замыканий:<br /></p><div class="codebox"><pre><code>function makeaddfunc(x){
    return function(y){
        return x + y;
    }
}
plusThree = makeaddfunc(3);
plusFour = makeaddfunc(4);

WScript.Echo(plusThree(5));
WScript.Echo(plusFour(5));</code></pre></div><p>В примере создаются функции plusThree и plusFour, которые увеличивают свой аргумент на число 3 и 4 соответственно. При этом не пришлось объявлять и описывать каждую функцию отдельно.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Sat, 07 Mar 2009 11:20:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=20341#p20341</guid>
		</item>
		<item>
			<title><![CDATA[Re: JScript: общие приёмы работы]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=14166#p14166</link>
			<description><![CDATA[<p>В JS существует сокращенная запись объектов.<br />new Object() можно записать как {}<br />new Array() можно записать как []<br />new RegExp() можно записать как //<br />Предыдущий пример от <strong>-red-</strong> можно записать так:<br /></p><div class="codebox"><pre><code>var oArray=
 [
  {
   str:&quot;zero&quot;,
   dig:0
  },
  {
   str:&quot;one&quot;,
   dig:1
  },
 ];

 WSH.echo(toJSON2(oArray))

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

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

 function toJSON2(s)    // сериализация в JSON массива одноуровневых структур простых типов
 {
  var r=[];
  for(var i in s)
   r.push(toJSON1(s[i]))
  return &quot;[\r\n &quot;+r.join(&quot;,\r\n &quot;)+&quot;\r\n]&quot;;
 }</code></pre></div><p>Функции <strong>toJSON1()</strong> и <strong>toJSON2()</strong> удобно использовать для отладки и для сериализации данных JS, для сохранения готовых данных в файл или для обмена данными по сети. Формат удобен тем, что для его превращения данных из текста обратно в структуру JS достаточно его считать в строку и выполнить над ней <strong>eval()</strong>.</p><p>Кроме того, можно не использовать метод <strong>.toString()</strong> - с этим прекрасно справляется неявное преобразование типов.</p><p>Автор примера - <strong>fps</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Sun, 21 Sep 2008 14:32:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=14166#p14166</guid>
		</item>
		<item>
			<title><![CDATA[JScript: общие приёмы работы]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=14165#p14165</link>
			<description><![CDATA[<p>Использование массивов объектов:<br /></p><div class="codebox"><pre><code>// Файл objsarr.js
// JS: Использование массивов объектов в примере.
var oArray = new Array();
oArray[0] = new Object();
oArray[0].str = &quot;zero&quot;;
oArray[0].dig = 0;
oArray[1] = new Object();
oArray[1].str = &quot;one&quot;;
oArray[1].dig = 1;
test(oArray);

function test(obj){
    obj[0].NewVal = &quot;new&quot;;
    WScript.Echo(    &quot;len: &quot;+obj.length.toString() +&quot;\n&quot;+
    &quot;test 0: string = &quot;+obj[0].str +&quot;; digit = &quot;+obj[0].dig.toString()+&quot; &quot;+obj[0].NewVal+&quot;\n&quot;+
    &quot;test 1: string = &quot;+obj[1].str +&quot;; digit = &quot;+obj[1].dig.toString()
    );
}</code></pre></div><p>Автор примера - <strong>-red-</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Sun, 21 Sep 2008 14:28:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=14165#p14165</guid>
		</item>
	</channel>
</rss>
