<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JS:передача по ссылке и по значению.]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8353&amp;type=atom" />
	<updated>2013-06-03T17:30:47Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8353</id>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72698#p72698" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>max7 пишет:</cite><blockquote><p>Вопрос: Как это может привести к &quot;путанице&quot;, если всё выше написанное тебе понятно?</p></blockquote></div><p>так бывает, этот ответ я писал на:<br /><a href="http://forum.script-coding.com/viewtopic.php?pid=72617#p72617">http://forum.script-coding.com/viewtopi … 617#p72617</a></p><p>пока я это писал, появилось:<br /><a href="http://forum.script-coding.com/viewtopic.php?pid=72622#p72622">http://forum.script-coding.com/viewtopi … 622#p72622</a></p><p>так вроде разобрались, уже думал....</p>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-03T17:30:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72698#p72698</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72697#p72697" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>im2002 пишет:</cite><blockquote><p>Оба ваших примера никаких сомнений и возражений не вызывают, вопрос не в этом</p></blockquote></div><div class="quotebox"><cite>im2002 пишет:</cite><blockquote><p>небольшая путаница произошла, вследствие того, что и локальная переменная внутри ф-ии и глобальная переменная вне ф-ции имеют одинаковые имена</p></blockquote></div><p>Вопрос: Как это может привести к &quot;путанице&quot;, если всё выше написанное тебе понятно?</p>]]></content>
			<author>
				<name><![CDATA[max7]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=10498</uri>
			</author>
			<updated>2013-06-03T16:22:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72697#p72697</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72688#p72688" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>max7 пишет:</cite><blockquote><p> В функции <strong>нет создания нового объекта</strong></p></blockquote></div><p>я этого и не писал! небольшая путаница произошла, вследствие того, что и локальная переменная внутри ф-ии и глобальная переменная вне ф-ции имеют одинаковые имена, а то что они указывают на один объект это понятно. не сердитесь <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-03T11:07:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72688#p72688</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72682#p72682" />
			<content type="html"><![CDATA[<p><span style="color: Green"><strong>2max7</strong>: коллега, спокойнее, пожалуйста.</span></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-06-03T09:23:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72682#p72682</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72680#p72680" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>im2002 пишет:</cite><blockquote><p>...</p><div class="codebox"><pre><code>
...
что происходит в процессе выполнения ф-ии согласно max 7:
...
4. поскольку у &quot;локальная переменная&quot;, её значение - ссылка на объект {a:100, b:100} 
будет актуальна только в пределах данной функции.
...</code></pre></div><p> ...</p></blockquote></div><p>Чушь полную написал, вот такой ахинеи с учётом тобою же&nbsp; написанного текста я не ожидал.<br />Ссылка на объект (сам объект) создана, сохранена и передана в функцию из внешнего по отношению к ней контекста и существует за пределами функции. В функции <strong>нет создания нового объекта</strong>, только изменение существующего. Так что это не &quot;согласно max7&quot;, а &quot;согласно&quot; твоего бреда.</p>]]></content>
			<author>
				<name><![CDATA[max7]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=10498</uri>
			</author>
			<updated>2013-06-03T08:49:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72680#p72680</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72677#p72677" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>max7 пишет:</cite><blockquote><p>Повторю ещё раз:<br />ЕСЛИ В СКОБОЧКАХ ПРИ ОБЪЯВЛЕНИИ ФУНКЦИИ ЗАПИСАНО КАКОЕ-ТО ИМЯ (ИЛИ НЕСКОЛЬКО ИМЁН), ОНО АВТОМАТИЧЕСКИ ОБЪЯВЛЯЕТСЯ ЛОКАЛЬНОЙ ПЕРЕМЕННОЙ, НЕ МНОЙ, НЕ ТОБОЙ, А JS ПРИ РАЗБОРЕ СКРИПТА, КАК БУДТО В ФУНКЦИИ НАПИСАНО &quot;VAR Y;&quot; И С ТЕМ ЖЕ РЕЗУЛЬТАТОМ. ЗДЕСТЬ &quot;Y&quot; ЭТО ЛОКАЛЬНАЯ ПЕРЕМЕННАЯ КОТОРОЙ БУДЕТ ПРИСВОЕНО ЗНАЧЕНИЕ ПЕРВОГО АРГУМЕНТА ПРИ ВЫЗОВЕ. АРГУМЕНТЫ ФУНКЦИИ ИДУТ ПО ИНДЕКСАМ ПРИ ВЫЗОВЕ: НУЛЕВОЙ, ПЕРВЫЙ, ВТОРОЙ И Т. Д. А ВНУТРИ ФУНКЦИИ, В СООТВЕТСТВИИ С ПОРЯДКОМ ЗАПИСИ, ЛОКАЛЬНЫМ ПЕРЕМЕННЫМ ПРИСВАИВАЮТСЯ ЗНАЧЕНИЯ АРГУМЕНТОВ. <br />Что непонятно конкретно в этом сообщении?</p></blockquote></div><p>хотел оставить тему &quot;в покое&quot;, но не удержался! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p><div class="codebox"><pre><code>function f(y)
    {
    y.a = 100, y.b = 100;        
/*
определить в объекте у свойства а и b с указанными значениями, если конечно такой объект
существует
*/
         };
 
var y = {a:1};                // запись ссылки на объект в перем. у
 

f(y);                            // вызов функции, передача в ф-ю ссылки на объект
 
WScript.Echo(&quot;Значения ПОСЛЕ применения функции:\n&quot; + &quot;Параметр у.а = &quot; + y.a + &quot;\n&quot; + &quot;Параметр у.b = &quot; + y.b);
                    /* 
                    что происходит в процессе выполнения ф-ии согласно max 7:
                    1. внутри функции создана переменная у со значением arguments[0] (var y = arguments[0]);
                    2. переменная y получает ссылку, на объект, переданный ф-ции при вызове: var y = {a:1};
                    3. т.к. объект существует, св-во &quot;а&quot; принимает значение &quot;100&quot;, добавляется св-во &quot;b&quot; , 
                                            также со значением &quot;100&quot;.
                    4. поскольку у &quot;локальная переменная&quot;, её значение - ссылка на объект {a:100, b:100} 
                                            будет актуальна       только в пределах данной функции.
                    5. инструкция WScript.Echo вернёт результат &quot;1&quot; и &quot;underfined&quot;, т.е. те значения для 
                                            объекта а, которые определены вне пределов функции f
                    */</code></pre></div><p>однако &quot;непослушная&quot; WScript.Echo возвращает 100 и 100. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> .<br />Всё, теперь точно закрыта тема.</p>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-03T07:48:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72677#p72677</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72676#p72676" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>im2002 пишет:</cite><blockquote><p>... что такое <span class="bbu">не очевидное</span>&nbsp; допущение (что у локальная) ...</p></blockquote></div><p>И что в нём не очевидного, и где здесь допущение? Это преподается на всех курсах, и об этом написано во все учебниках &quot;в самом начале&quot;. Это общее место, общий принцип.<br /></p><div class="codebox"><pre><code>function f(y)
{
   // ...
};</code></pre></div><p>При такой (или подобной) &quot;записи&quot;, &quot;y&quot; будет локальной <span class="bbu"><em><strong>во всех</strong></em></span> языках программирования.</p>]]></content>
			<author>
				<name><![CDATA[max7]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=10498</uri>
			</author>
			<updated>2013-06-03T07:37:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72676#p72676</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72673#p72673" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>max7 пишет:</cite><blockquote><p>im2002, что непонятно из моего комментария #9? Если &quot;всё&quot;, и учебник скажем на javascript.ru ничем не помог, может это не твоя тема?</p></blockquote></div><p>Тот кусок, который вы разбираете далее &quot;составил&quot; не я, а уважаемый <strong>Rumata</strong>, просто такое толкование было наиболее близко &quot;моему пониманию&quot;, вот я и сослался... <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> .<br />Что касается ваших замечаний. По поводу действий интерпретатора, которые вы изложили в п. 0-19, было много непоняток и вопросов,&nbsp; просто обсуждать не стал, тема простая, и так раздута, чтоб &quot;не засорять&quot; так сказать. Что касается замечаний в вашем последнем комментарии, которые &quot;с заглавной буквы&quot; вот смотрите, что получается:</p><p><span class="bbu">Согласно изложенному вами:</span></p><div class="codebox"><pre><code>function f(y)
    {
/* 
что происходит, после вызова ф-ии, с параметром как указано ниже? в локальную переменную у записывается
аргумент с индексом [0]. что это за аргумент? это ссылка на массив {a:1}, т.е. в нашей ф-ции как бы появилась 
запись y = {a:1}; затем по контексту имеется запись:  y = {a:100, b:100};  что произойдёт? переменная у 
потеряет ссылку на объект {a:1}, а вместо этого &quot;приобретёт&quot; ссылку на объект {a:100, b:100}. 
казалось бы WScript.Echo должна показать результат 100 и 100... ан нет! показывает 1 и underfined! 
почему?! да переменная y внутри ф-ции локальная (с чего и начинался разбор), за пределами ф-ции &quot;не видна&quot;, 
там другая, своя у есть! почему локальная где var? не нужно var, сам JS &quot;так устроен&quot;
*/
        y = {a:100, b:100};        
    };
var y = {a:1};    
f(y);                            // вызов функции 
WScript.Echo(&quot;Параметр у.а = &quot; + y.a + &quot;\nПараметр у.b = &quot; + y.b);   </code></pre></div><p>Вот как-то так получается, согласен, что такое <span class="bbu">не очевидное</span>&nbsp; допущение (что у локальная)&nbsp; выглядит более <br />&quot;привлекательно&quot;, чем моё объяснение {a:1} = {a:100, b:100}!!! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> .<br />Всем спасибо. Тема закрыта, вопросов больше нет!</p>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-03T06:27:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72673#p72673</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72669#p72669" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>max7 пишет:</cite><blockquote><p>Повторю ещё раз:</p></blockquote></div><p><span style="color: Green">Для цитирования (и самого себя в том числе) применяется тэг «qoute». Для выделения, подчёркивания какой-либо мысли — «b», или «i», или «u». Пожалуйста, не надо писать одними заглавными буквами.</span></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-06-03T05:30:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72669#p72669</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72668#p72668" />
			<content type="html"><![CDATA[<p>Немного подправил <br /></p><div class="codebox"><pre><code>
function f(y_link)
    {
//Не правильно теряеем ссылку на объект
//y_link = {a:100, b:100};

 // мы в праве сделать что-то со свойствами   Объекта y
        y_link.a=100
        y_link.b=100
    };
 
var y = {a:1};             // определение объекта y с параметром а со значением 1
f(y);                            // вызов функции 
WScript.Echo(&quot;Параметр у.а = &quot; + y.a + &quot;\nПараметр у.b = &quot; + y.b);   </code></pre></div>]]></content>
			<author>
				<name><![CDATA[badik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=21834</uri>
			</author>
			<updated>2013-06-03T05:23:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72668#p72668</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72666#p72666" />
			<content type="html"><![CDATA[<p>im2002, что непонятно из моего комментария #9? Если &quot;всё&quot;, и учебник скажем на javascript.ru ничем не помог, может это не твоя тема?</p><p>Давай по чуть-чуть.</p><div class="quotebox"><cite>im2002 пишет:</cite><blockquote><p>... что-то подобное, что навело на те выводы, которые для себя придумал <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> .<br /></p><div class="codebox"><pre><code>// объявлена функция с одним аргументом
function f(y)
{
    // мы в праве сделать что-то с ЭТИМ АРГУМЕНТОМ (не переменной!)
    y = {a:100, b:100};
};

// явно вызвали функцию, но ничего не передали
// Тоже имеем право - ничего не передавать в функцию
f();

// нет переменной, получаем ошибку
WScript.Echo(y.a + &quot;----&quot; + y.b);</code></pre></div></blockquote></div><p>Ты пишешь: &quot;мы в праве сделать что-то с ЭТИМ АРГУМЕНТОМ (не переменной!)&quot;.<br />Повторю ещё раз:<br />ЕСЛИ В СКОБОЧКАХ ПРИ ОБЪЯВЛЕНИИ ФУНКЦИИ ЗАПИСАНО КАКОЕ-ТО ИМЯ (ИЛИ НЕСКОЛЬКО ИМЁН), ОНО АВТОМАТИЧЕСКИ ОБЪЯВЛЯЕТСЯ ЛОКАЛЬНОЙ ПЕРЕМЕННОЙ, НЕ МНОЙ, НЕ ТОБОЙ, А JS ПРИ РАЗБОРЕ СКРИПТА, КАК БУДТО В ФУНКЦИИ НАПИСАНО &quot;VAR Y;&quot; И С ТЕМ ЖЕ РЕЗУЛЬТАТОМ. ЗДЕСТЬ &quot;Y&quot; ЭТО ЛОКАЛЬНАЯ ПЕРЕМЕННАЯ КОТОРОЙ БУДЕТ ПРИСВОЕНО ЗНАЧЕНИЕ ПЕРВОГО АРГУМЕНТА ПРИ ВЫЗОВЕ. АРГУМЕНТЫ ФУНКЦИИ ИДУТ ПО ИНДЕКСАМ ПРИ ВЫЗОВЕ: НУЛЕВОЙ, ПЕРВЫЙ, ВТОРОЙ И Т. Д. А ВНУТРИ ФУНКЦИИ, В СООТВЕТСТВИИ С ПОРЯДКОМ ЗАПИСИ, ЛОКАЛЬНЫМ ПЕРЕМЕННЫМ ПРИСВАИВАЮТСЯ ЗНАЧЕНИЯ АРГУМЕНТОВ. </p><div class="codebox"><pre><code>
function f(y) // &lt;- Во это объявление локальной ПЕРЕМЕННОЙ с именем &quot;y&quot;, 
              // запись её в скобочках означает, 
              // что при вызове функции ей будет присвоено значение первого аргумента. 
              // Эту &quot;y&quot; называют &quot;именованы аргумент&quot;, чтобы подчеркнуть, 
              // что это не просто локальная переменная, 
              // а такая локальная переменная, 
              // которой присвоили значение первого аргумента, 
              // который был записан в скобочках при вызове.
{
   // ... 
}
</code></pre></div><p>Аргументы, это ПРИ ВЫЗОВЕ,&nbsp; там где &quot;явно вызвали функцию&quot;, значение того что записали в скобочках, то и аргумент:<br />f(); // нисколько аргументов<br />f(a); // один аргумент<br />f(a,b); // два аргумента<br />f(a,b,c); // три аргумента</p><p>Запись <br /></p><div class="codebox"><pre><code>y = {a:100, b:100}; </code></pre></div><p>означает, что переменной &quot;y&quot; присвоили ссылку на новый объект, ни с каким &quot;аргументом&quot; здесь вообще ничего не происходит, нет здесь никаких &quot;аргументов&quot;.</p><br /><p>Что непонятно конкретно в этом сообщении?</p>]]></content>
			<author>
				<name><![CDATA[max7]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=10498</uri>
			</author>
			<updated>2013-06-02T23:08:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72666#p72666</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72655#p72655" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>im2002 пишет:</cite><blockquote><p>а дальше по контексту, с переданным при вызове объектом должно быть что-то типа: {a:1} = {a:100, b:100};&nbsp; как это понять?!</p></blockquote></div><p>Никак этого не должно быть. Переменная — это ящик. Глобальная переменная — один ящик, параметр функции — другой ящик, даже если у них одно и то же имя. При передаче в функцию вы берёте вещь из одного ящика, делаете её копию и кладёте в другой, так она попадает в функцию. Если там вы её выкинете и положите в ящик-параметр что-то другое, то как это скажется на глобальном ящике? Никак. Там что лежало, то и будет лежать.</p><p>В случае &quot;передачи объекта&quot; делается копия ссылки, сам объект не копируется. По ссылке объект можно изменить, и эти изменения будут видны и снаружи, т.к. объект один и тот же.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-06-02T15:24:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72655#p72655</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72650#p72650" />
			<content type="html"><![CDATA[<p>Все попытки &quot;что-либо почитать&quot; и прочие мои &quot;мозговые штурмы&quot; к полному пониманию картины увы так и не привели... видно не для &quot;моих мозгов&quot; <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> . Однако &quot;природа не терпит пустоты&quot;, поэтому &quot;объяснение для себя&quot;, которое, надеюсь поможет решать подобные примеры нашёл.<br />Итак, с чего всё начиналось:</p><p><span class="bbu">случай 1:</span></p><div class="codebox"><pre><code>function f(y)
    {
/* что происходит, после вызова ф-ии, с параметром как указано ниже? в функцию, посредством переменной у
была передана ссылка на объект. хорошо, передалась ссылка. дальше что? а дальше по контексту, с переданным
при вызове объектом должно быть что-то типа: {a:1} = {a:100, b:100};  как это понять?!
что само по себе абсурдно, поэтому логично, что переменная y и после вызова ф-ции, будет указывать на 
объект, имеющий 1 св-во а = 1, т.е. объект переданный в ф-ю никак не изменился
*/
        y = {a:100, b:100};        
    };
var y = {a:1};    
f(y);                            // вызов функции 
WScript.Echo(&quot;Параметр у.а = &quot; + y.a + &quot;\nПараметр у.b = &quot; + y.b);    
</code></pre></div><p><span class="bbu">случай 2:</span></p><div class="codebox"><pre><code>function f(t)
    {
/* что происходит, после вызова ф-ии, с параметром как указано ниже? в функцию, посредством переменной у
была передана ссылка на объект. хорошо, передалась ссылка. дальше что? а дальше по контексту, с переданным
при вызове объектом ничего происходить не должно, он вообще &quot;в теле ф-ии&quot; никак более не используется!
но зато при выполнении функции создаётся объект с двумя свойствами, 
а ссылка на него записывается в перем. &quot;у&quot;.  Т.к. ранее в данную переменную была записана ссылка на
&quot;другой&quot; объект, то она (ссылка) перезаписывается &quot;указателем на новый объект&quot;. теперь у объекта, на который
ссылается у 2 значения.  
*/
        y = {a:100, b:100};        
    };
var y = {a:1};    
f(y);                            // вызов функции с параметром y
WScript.Echo(&quot;Параметр у.а = &quot; + y.a + &quot;\nПараметр у.b = &quot; + y.b);    
</code></pre></div><p><span class="bbu">случай 3:</span></p><div class="codebox"><pre><code>function f(t)
    {
/*  
между данным примером и примером &quot;случай 2&quot; нет никакой разницы
*/
        y = {a:100, b:100};        
    };
var y = {a:1};    
f();                            // вызов функции без параметра
WScript.Echo(&quot;Параметр у.а = &quot; + y.a + &quot;\nПараметр у.b = &quot; + y.b);    </code></pre></div><p><span class="bbu">случай 4:</span></p><div class="codebox"><pre><code>function f(y)
    {
/* между данным примером и примером из &quot;случай 1&quot; разница в том, что
вместо: {a:1} = {a:100, b:100} здесь имеет место быть: &quot;ничего&quot; = {a:100, b:100}
что также абсурдно
*/
        y = {a:100, b:100};        
    };
var y = {a:1};    
f();                            // вызов функции 
WScript.Echo(&quot;Параметр у.а = &quot; + y.a + &quot;\nПараметр у.b = &quot; + y.b);   </code></pre></div><p>Вроде как-то так... </p><p>Вот тут от <strong>Rumata</strong>, что-то подобное, что навело на те выводы, которые для себя придумал <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> .</p><div class="codebox"><pre><code>// объявлена функция с одним аргументом
function f(y)
{
    // мы в праве сделать что-то с ЭТИМ АРГУМЕНТОМ (не переменной!)
    y = {a:100, b:100};
};

// явно вызвали функцию, но ничего не передали
// Тоже имеем право - ничего не передавать в функцию
f();

// нет переменной, получаем ошибку
WScript.Echo(y.a + &quot;----&quot; + y.b);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-02T14:35:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72650#p72650</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72639#p72639" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>Пришел грамма-наци и все опошлил.</p></blockquote></div><p>&quot;Спасибо&quot;, меня впервые обозвали &quot;грамма-наци&quot;.<br /></p><div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p> Истолкуйте следующий код ...</p></blockquote></div><p>У меня &quot;разрыв шаблона&quot;. Я то думал, что исходный код интерпретируется/компилируется/исполняется в соответствии со спецификацией. А он оказывается &quot;истолковывается&quot;. Спасибо, я это запомню и возьму на вооружение ;-)</p><div class="codebox"><pre><code>
function f(o)
{
    o.a = 1;
};

var o = {};
f(o);
WScript.Echo(o.a);
</code></pre></div><p>Распарсен/проанализирован/скомпилирован я буду называть &quot;обработан&quot;.</p><p>Если вкратце, то:</p><p>0. Обработан текст скрипта.<br />1. В текущем контексте объявлена именованная функция &quot;f&quot; (&quot;скрытая&quot; переменная), <br />2.0. Её код также обработан.<br />2.1. Объявлена в контексте функции переменная &quot;o&quot;.<br />2.2. Подготовлен код для исполнения.<br />3. В текущем контексте объявлена переменная &quot;o&quot;.<br />4. Подготовлен код для исполнения.<br />5. Исполнение...<br />6. Создан объект.<br />7. Переменной (текущего контекста) &quot;o&quot; присвоена ссылка на этот объект.<br />8. Из переменной (текущего контекста) &quot;f&quot; получена ссылка на функцию.<br />9. Из переменной (текущего контекста) &quot;o&quot; получена ссылка на объект.<br />10. Во внутренней структуре функции, хранящей массив переданных аргументов, по индексу [0] записана ссылка на объект.<br />11. Вызов функции, создан новый контекст исполнения.<br />12.0. В контекст функции.<br />12.1. Переменной (в контексте функции) &quot;o&quot; присвоено значение по индексу [0] из массива аргументов.<br />12.2. Из переменной (в контексте функции) &quot;o&quot; получена ссылка на объект.<br />12.3. Создание/запрос у объекта свойства с именем &quot;a&quot;.<br />12.4. Запись значения свойства...<br />12.5. Выход из функции, &quot;разрушение&quot; контекста.<br />13. Возврат в вышестоящий контекст.<br />14. ... получена ссылка на функцию из WScript.Echo ... <br />(в данном случае условно, так как здесь вызов через ActiveX/IDispatch)<br />15. Из переменной (текущего контекста) &quot;o&quot; получена ссылка на объект.<br />16. По ссылке на объект ... получено значение свойства с именем &quot;a&quot;.<br />17. Во внутренней структуре функции, хранящей массив переданных аргументов, по индексу [0] записано число 1.<br />18. Вызов функции...<br />19. и т. д.</p>]]></content>
			<author>
				<name><![CDATA[max7]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=10498</uri>
			</author>
			<updated>2013-06-02T06:01:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72639#p72639</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS:передача по ссылке и по значению.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=72638#p72638" />
			<content type="html"><![CDATA[<p>Здесь изменяется свойство объекта, а в переменной &quot;о&quot; как была ссылка на этот объект, так и осталась, т.е. её значение не изменилось.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-06-02T05:46:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=72638#p72638</id>
		</entry>
</feed>
