<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Уроки PHP, Mootools, JavaScript, ActionScript, HTML, CSS &#187; функции</title>
	<atom:link href="http://php.infoniac.ru/tag/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8/feed/" rel="self" type="application/rss+xml" />
	<link>http://php.infoniac.ru</link>
	<description>Уроки программирования от новичка новичкам</description>
	<lastBuildDate>Tue, 20 Mar 2012 18:36:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Самовыполняющиеся функции JavaScript</title>
		<link>http://php.infoniac.ru/auto-executable-functions-javascript.html</link>
		<comments>http://php.infoniac.ru/auto-executable-functions-javascript.html#comments</comments>
		<pubDate>Thu, 08 Apr 2010 08:19:51 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Оптимизация]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[функции]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=621</guid>
		<description><![CDATA[Недавно меня сильно пробило на чтение всяческих обучающих материалов, просмотр видео роликов на тему программирования и сайтостроение. Оказывается, в Интернете столько всего, что всё знать вряд ли получится. А жаль:( Очень много информации, как полезной, так и не очень. Уже не помню, на каком именно сайте наткнулся на краткую информацию о самовыполняющихся функциях. Должен сказать, [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Недавно меня сильно пробило на чтение всяческих обучающих материалов, просмотр видео роликов на тему программирования и сайтостроение. Оказывается, в Интернете столько всего, что всё знать вряд ли получится. А жаль:( Очень много информации, как полезной, так и не очень. Уже не помню, на каком именно сайте наткнулся на краткую информацию о самовыполняющихся функциях. Должен сказать, что я не обратил бы на этот термин практически никакого внимания, кроме как просто запомнил бы и, может быть, когда-нибудь, пришлось бы такие функции исползовать, если бы не недавний мой пост про <a href="http://php.infoniac.ru/javascript-zakladki.html">создание интерактивных закладок</a> в браузерах.</p>
<p><span id="more-621"></span>
<p>В чем суть самовыполняющихся функций? Для этого нужно разобраться в том, как создаются и выполняются обычные функции в JavaScript. Обычно функцию вначале нужно определить, и <a href="http://php.infoniac.ru/mootools-tutorial-day-4-functions.html">это можно сделать разными способами</a> и только после этого ее нужно вызвать. Например:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">// определяем функцию</span>

<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> execute <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
  $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'result'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'функция execute выполнена'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//определяем условия ее выполнения</span>
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'exec'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> execute<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>
<span id="result"></span><br />
<button id="exec">Выполнить execute</button>
</p>
<p>В общем, мне кажется я много пишу, т.к. само название самовыполняющейся функции говорит само за себя: вызывать ее выполнение не требуется, т.к. она выполняется сразу после определения и всё, что нужно, это заключить определение функции в скобки и поставить после этой конструкции еще пару скобок, вот так:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>

&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">// определяем действия в функции</span>
&nbsp;
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//скобки говорят обработчику, что нужно сразу выполнить фунцию,</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//определённую немного ранее</span></pre>
</div>
</div>
<p>Почему я вспомнил, про интерактивные закладки? Потому что они построенны на базе таких функций и когда я пытался понять их структуру и логику, я задавал себе вопрос «зачем там скобки и что они делают?». Вот оно, как просо оказалось.</p>
<p>Пока мне в голову пришел только один пример работы самовыполняющейся функции: добавим еще несколько строчек JavaScript к нашему предыдущему примеру с функцией <strong>execute</strong>  и, через <strong>setTimeout()</strong> добавим самовыполняющуюся функцию, которая изменит результат выполнения предыдущей функции <strong>execute</strong> через 2 секунды, потому обратите внимание на текст сообщения над кнопкой вызова. А вот, собственно, и сам код:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> execute <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>

  $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'result'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'функция execute выполнена'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>

&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> unexecute <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
  $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'result2'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'функция execute выполнена'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

  setTimeout<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'result2'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'и через 2 секунды определяется и самовыполняется функция unexecute'</span><span style="color: rgb(0, 153, 0);">)</span>

  <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">2000</span><span style="color: rgb(0, 153, 0);">)</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>

		$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'exec'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> execute<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
		$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'unexec'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> unexecute<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p><span id="result2"></span><br />
<button id="unexec">Выполнить unexecute</button></p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/auto-executable-functions-javascript.html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Уроки Mootools – Урок 4 – Функции</title>
		<link>http://php.infoniac.ru/mootools-tutorial-day-4-functions.html</link>
		<comments>http://php.infoniac.ru/mootools-tutorial-day-4-functions.html#comments</comments>
		<pubDate>Wed, 20 May 2009 04:39:13 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[уроки]]></category>
		<category><![CDATA[уроки mootools]]></category>
		<category><![CDATA[функции]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=86</guid>
		<description><![CDATA[Добро пожаловать на 4-й урок нашего "курса молодого бойца". Если вы впервые на моем блоге  и сразу попали на эту страницы, то вам стоит посмотреть <a href="http://php.infoniac.ru/category/mootools">предыдущие уроки из этой серии</a>. Сегодня мы пойдем немного не по тому пути, т.к. пройдемся немного по основам функций в JavaScript.]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><h2>Функции и Mootools 1.2</h2>
<p>Добро пожаловать на 4-й урок нашего &#8220;курса молодого бойца&#8221;. Если вы впервые на моем блоге  и сразу попали на эту страницы, то вам стоит посмотреть <a href="http://php.infoniac.ru/category/mootools">предыдущие уроки из этой серии</a>. Сегодня мы пойдем немного не по тому пути, т.к. пройдемся немного по основам функций в JavaScript.</p>
<p><span id="more-86"></span></p>
<p>Однако, не отходя все таки далеко от нашей основной темы &#8211; Mootools &#8211; вы должны помнить, где должен находится код ваших функций для использования в Mootools. В одном из наших предыдущих уроков мы рассматривали примеры использования функций внутри события <a href="http://php.infoniac.ru/what-is-domready.html">domready</a>.</p>
<p>В основном, конечно же, считается хорошим &#8220;программистским&#8221; тоном хранить все свои функции вне страницы с HTML кодом и вызывать их с помощью ссылок на js-файлы. Хотя с другой стороны, многие программисты не любят разбрасывать свой код по нескольким файлам, так как потом легче все найти, когда это все на одной странице. В наших уроках мы будем использовать такой шаблон объявления функций и их вызова из события domready: </p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
	<span style="color: #009966; font-style: italic;">/* * Тут определяется функция */</span>
	window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #009966; font-style: italic;">/* *Вызовы функции */</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Все примеры, представленные в этом уроке, используют этот шаблон. Как ни странно, она работают нормально (с условием, что в самом коде ошибок нет!). Под некоторыми примерами есть также и кнопки, с помощью которых можно испытать работоспособность этих примеров. Обращаю внимание на то, что в некоторых функциях я использовал обработчики событий (<em>event handlers</em>), о которых расскажу в следующем уроке.</p>
<h3>Основы</h3>
<p>В JavaScript существует несколько методов определения функций, а так как мы тут собрались поучить Mootools, будем использовать любимый метод разработчиков этой библиотеки. В следующем примере показана самая простая функция. Мы объявляем переменную, называем ее simple_function и определяем ее как функцию:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> simple_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></pre></div></div>

<p>После этого мы добавляем функцию alert, которая запустится при запуске нашей функции:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Самая обычная и простая функция'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>В конце концов, добавляем закрывающую фигурную скобку, которая является самым распространенной вещью, которую забывают поставить разработчики (у меня с этой скобкой отдельный счеты&#8230;я и так внимательностью не отличаюсь, так что не поставить закрывающую скобку для меня совсем не проблема):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#125;</span></pre></div></div>

<p>Такую ошибку довольно сложно выследить, поэтому я рекомендую при объявлении функций (да и вообще любых других методов, требующих открытие и закрытие скобок &#8211; итерации и условия) сразу начинать писать код <strong>внутри</strong> фигурных скобок. Но и конечно же проверять их наличие никогда не будет лишним.</p>
<p>Все вышеизложенное объединено в следующем примере. После объявления функции, мы вызываем ее уже из события domready, которое выполнит функцию по загрузке страницы. Нажмите на кнопку под кодом примера и получите результат вызова функции simple_function().</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//Определяем функцию simple_function</span>
<span style="color: #003366; font-weight: bold;">var</span> simple_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Самая обычная и простая функция'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//Вызываем нашу функцию по загрузке DOMa(страницы)</span>
    simple_function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><button id="simple_button">Тестируем простую функцию</button></p>
<h3>Функция с одним параметром</h3>
<p>Очень полезно иметь функции, которые можно вызвать в любом месте файла, а еще более полезным будет возможность передавать параметры этим функциям. Для того, чтобы использовать параметры с функциями, мы их вставляем в скобки после ключевого слова <strong>function</strong>, вот так:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> имя_функции <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>имя_параметра<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/*сюда вставляется код функции*/</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Т.е. это я и многие другие привыкли так объявлять функции (я говорил об этом выше). В JavaScript параметры находятся также в круглых скобках, тогда как скобки находятся после названия функции, как тут:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> имя_функции <span style="color: #009900;">&#40;</span>имя_параметра<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/* код функции */</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>После объявления параметра, переменная будет доступна для работы с ней уже внутри самой функции. Несмотря на то, что называть параметры можно как душе угодно (латинскими буквами), рекомендую предавать их названию как можно больше описания того, для чего они предназначены. Например, если мы передаете в функцию параметр, содержащий название автомобиля, одним из вариантов хорошего названия параметра было бы <em>car_name</em> или даже <em>avto</em> подойдет, вместо чего-то вроде <em>info_ot_usera</em>.</p>
<p>В следующем примере, мы определим функцию, которая будет запрашивать только один параметр (с названием <em>parameter</em>) и вызывает предупреждение (<strong>alert()</strong>) с этим параметром. Несмотря на то, что первая часть сообщения заключается в единичные кавычки, параметр передается без них. При использовании параметров в сочетании со строками (как в нашем случае), их нужно соединять оператором &#8220;+&#8221;, как это показано в примере:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> single_parameter_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>parameter<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'наш параметр : '</span> <span style="color: #339933;">+</span> parameter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> single_parameter_function<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Вот это параметр'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><button id="single_parameter_button">Функция с одним параметром</button></p>
<h3>Передача нескольких параметров</h3>
<p>JavaScript не ограничивает в количестве возможных параметров функции, но всегда старайтесь передавать как можно меньше параметров из соображений последующей читабельности кода. Когда объявляются более одного параметра, они отделяются друг от друга запятыми, иначе функция посчитает, что ей передается лишь один параметр. Функции показанной ниже передаются два параметра в виде чисел, сумма которых присваивается переменой:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> third_number <span style="color: #339933;">=</span> first_number <span style="color: #339933;">+</span> second_number<span style="color: #339933;">;</span></pre></div></div>

<p>А после этого используется тот же оператор &#8220;+&#8221;, только уже в другом качестве, чтобы соединить результат в текстовую строку:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>first_number <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; плюс &quot;</span> <span style="color: #339933;">+</span> second_number <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; равно &quot;</span> <span style="color: #339933;">+</span> third_number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>На первый взгляд это может выглядеть запутанно, но на самом деле все просто. Если использовать знак плюса (+) с числами, обработчик суммирует числа, а применение его к строкам, соединяет строки в одну.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> two_parameter_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>first_number<span style="color: #339933;">,</span> second_number<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//Получаем сумму первого и второго числа</span>
    <span style="color: #003366; font-weight: bold;">var</span> third_number <span style="color: #339933;">=</span> first_number <span style="color: #339933;">+</span> second_number<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//Отобразить результат</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>first_number <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; плюс &quot;</span> <span style="color: #339933;">+</span> second_number <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; равно &quot;</span> <span style="color: #339933;">+</span> third_number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	two_parameter_function<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><button id="two_parameter_button">Функция с двумя параметрами</button></p>
<h3>Возврат значений</h3>
<p>Отображение результатов функции в окне оповещений может быть полезным, но чаще всего такие результаты нужны для их дальнейшего использования. Для этого, нужно будет использовать функцию <span class="fn">return</span>. Следующий пример делает тоже самое, что и предыдущий, только на этот раз мы не будем отсылать результат в окно оповещения (<strong>alert()</strong>), а просто сделаем результат доступным для дальнейшего использования. Следующий пример возвращает сумму двух чисел из предыдущего примера:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">return</span> third_number<span style="color: #339933;">;</span></pre></div></div>

<p>Нужно отметить, что теперь нужно будет внести некоторые изменения и в функцию &#8216;<em>domready</em>&#8216;, а именно мы добавим переменную <strong>return_value</strong>, которой передадим результат работы функции, после чего используем ее в окне оповещения.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> two_parameter_returning_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>first_number<span style="color: #339933;">,</span> second_number<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> third_number <span style="color: #339933;">=</span> first_number <span style="color: #339933;">+</span> second_number<span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> third_number<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> return_value <span style="color: #339933;">=</span> two_parameter_returning_function<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;return value is : &quot;</span> <span style="color: #339933;">+</span> return_value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><button id="two_parameter_returning_button">Функция с двумя параметрами с возвратом результата</button></p>
<h3>Использование функции как параметра</h3>
<p>Событие <span class="str">domready</span> использует в качестве параметра функцию:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/*ваш код*/</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Функция, передаваемая в качестве параметра, как показано в примере, называется анонимной функцией</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/*ваш код*/</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>И, раз уж зашел разговор о событии <span class="str">domready</span>, отмечу еще один (к уже указанным двум в <a href="http://php.infoniac.ru/mootorial-introduction-day1.html" title="30 дневный курс подготовки юного бойца – Mootools 1.2 – Урок 1 – Введение">первом уроке</a>) метод объявления функций в событии <em>domready</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//создаем функцию для вызова в событии domready</span>
<span style="color: #003366; font-weight: bold;">var</span> domready_function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/* ваш код */</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//Назначаем созданную функцию в параметры события</span>
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> domready_function<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Пока, вроде, никто ничего не говорил по поводу того, есть ли какая-то разница в производительности и функциональности между всеми методами, так что, как объявлять функции &#8211; это сугубо личное дело каждого.</p>
<h3>Примеры</h3>
<p>Итак, переходим к самой вкусной части этого урока! Предлагаю поиграть  с цветом фона одного из блоков на этой странице. Это, конечно, абсолютно бессмысленно, но полезно, с точки зрения понимания того, что можно творить с помощью Mootools или JavaScript. Код в студию:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> changeColor <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//Используем метод get чтобы получить значение цвета из текстовых блоков</span>
    <span style="color: #003366; font-weight: bold;">var</span> red <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'red'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> green <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'green'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> blue <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'blue'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//Убедимся, что все значения будут в формате целых чисел (метод toInt)</span>
    red <span style="color: #339933;">=</span> red.<span style="color: #660066;">toInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    green <span style="color: #339933;">=</span> green.<span style="color: #660066;">toInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    blue <span style="color: #339933;">=</span> blue.<span style="color: #660066;">toInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//Убедимся, что каждое число - это значение между 1 и 255</span>
    <span style="color: #006600; font-style: italic;">//при необходимости, округляем (метод limit)</span>
    red <span style="color: #339933;">=</span> red.<span style="color: #660066;">limit</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    green <span style="color: #339933;">=</span> green.<span style="color: #660066;">limit</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    blue <span style="color: #339933;">=</span> blue.<span style="color: #660066;">limit</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//преобразовываем формат цвет из RGB в 16-ричную систему исчисления (метод rgbToHex)</span>
    <span style="color: #003366; font-weight: bold;">var</span> color <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>red<span style="color: #339933;">,</span> green<span style="color: #339933;">,</span> blue<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">rgbToHex</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//устанавливаем цвет блока (метод setStyle)</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background'</span><span style="color: #339933;">,</span> color<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #003366; font-weight: bold;">var</span> resetColor <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//вернуть белый цвет блока</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#fff'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//Добавляем события click к каждой кнопке</span>
    <span style="color: #006600; font-style: italic;">//(метод addEvent - подробнее об этом поговорим в следующем уроке</span>
    <span style="color: #006600; font-style: italic;">//который будет готов очень скоро)</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'change'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> changeColor<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'reset'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> resetColor<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<div id="body_wrap" style="border:1px solid #000; padding: 7px;">
<p>Красный:</p>
<input type="text" id="red" size="3" value="255"/>
<p>Зеленый:</p>
<input type="text" id="green" size="3" value="255"/>
<p>Синий:</p>
<input type="text" id="blue" size="3" value="255"/>
<p><button id="change">Изменить цвет</button><br />
<button id="reset">Сбросить</button>
</div>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-tutorial-day-4-functions.html/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Полное собрание функций Mootools</title>
		<link>http://php.infoniac.ru/mootools-the-complete-reference.html</link>
		<comments>http://php.infoniac.ru/mootools-the-complete-reference.html#comments</comments>
		<pubDate>Sat, 16 May 2009 09:49:36 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[функции]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=711</guid>
		<description><![CDATA[Когда я начал изучать Mootools, мне казалось странным, что разработчики такой мощной библиотеки не позаботились об удобном поиске: ничего не найти! Потому, я решил, для начала скомпоновать pdf файл, который бы содержал все функции Mootools.]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>h2>На русском</p>
<p>Много планов, но мало времени! Хочется сделать очень многое, а в сутках всего 24 часа, из которых хотя бы 6 нужно поспать, отдохнуть&#8230; А еще в нужно семье уделять время, которых у меня теперь&#8230; 3.</p>
<p>Но, несмотря на все это, и продолжая переводить 4-й урок по Mootools, в котором речь пойдет о функциях, я наконец закончил делать красивый PDF файл с полным списком функций, методом и всем, всем, всем. Получилось, на мой взгляд, вполне достойно. Конечно, это все можно найти и на сайте <a href="http://docs.mootools.net">Mootools 1.2</a>, но там все разбросано по разделам и если не особо знаешь, в каком разделе может быть функция, то трудновато будет найти ее описание. А я себе соткал из всех тех страниц один файлик PDF, в котором при помощи небольшой команды Поиск можно обнаружить всё тебя интересующее. К сожалению, все это богатство знаний пока только на английском, но и этого большинству учащихся хватит, если нужно посмотреть хотя бы как использовать ту или иную функцию.</p>
<p>Скачать файл могут все желающие по этой ссылке:<br />
<a href="http://php.infoniac.ru/wp-content/uploads/mootools-reference.pdf" target="_blank" title="Mootools 1.2 Complete Reference">Скачать полный список методов и классов Mootools 1.2</a>.</p>
<p>Не забывайте подписаться на <a href="http://feeds.feedburner.com/Beginners-Programming-Training">RSS ленту</a> моего блога, чтобы вы первые могли получить следующий урок по Mootools.</p>
<p>И напишу ка я это же объяснение для возможных англоязычных посетителей, им то ведь тоже может приготится.</p>
<h2>English</h2>
<p>Finally, I finished the making of my PDF file, containing the entire Mootools 1.2 Reference. That is I took all the materials on <a href="http://docs.mootools.net">docs.mootools.net</a> and put it into one file, which makes the searching of any Mootools&#8217; function. So when you don&#8217;t know the exact category, where a function could be found, you could just search the complete reference PDF-file to find the desired function.</p>
<p><a href="http://php.infoniac.ru/wp-content/uploads/mootools-reference.pdf" title="Download the complete Mootools reference" target="_blank">Download the complete Mootools reference</a>.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-the-complete-reference.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

