<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Малко трикове с arguments.callee в JavaScript</title>
	<atom:link href="http://blog.rstankov.com/2009/06/18/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d1%82%d1%80%d0%b8%d0%ba%d0%be%d0%b2%d0%b5-%d1%81-arguments-callee-%d0%b2-javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rstankov.com/2009/06/18/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d1%82%d1%80%d0%b8%d0%ba%d0%be%d0%b2%d0%b5-%d1%81-arguments-callee-%d0%b2-javascript/</link>
	<description>Нещо някакво такова, блога на Радослав Станков</description>
	<lastBuildDate>Sun, 31 Jul 2011 16:41:58 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: Radoslav Stankov</title>
		<link>http://blog.rstankov.com/2009/06/18/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d1%82%d1%80%d0%b8%d0%ba%d0%be%d0%b2%d0%b5-%d1%81-arguments-callee-%d0%b2-javascript/comment-page-1/#comment-142</link>
		<dc:creator>Radoslav Stankov</dc:creator>
		<pubDate>Sun, 13 Dec 2009 14:59:18 +0000</pubDate>
		<guid isPermaLink="false">http://next.pixeldepo.com/?p=1069#comment-142</guid>
		<description>И аз малко се разочаровах, когато разбрах arguments.callee няма да го има вече. Иначе благодаря за обяснението как работят arguments. 

Докато за оптимизацията много зависи от самата имплементация, също така това не би ме спряло да ползвам arguments когато ми трябват.</description>
		<content:encoded><![CDATA[<p>И аз малко се разочаровах, когато разбрах arguments.callee няма да го има вече. Иначе благодаря за обяснението как работят arguments. </p>
<p>Докато за оптимизацията много зависи от самата имплементация, също така това не би ме спряло да ползвам arguments когато ми трябват.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Асен Божилов</title>
		<link>http://blog.rstankov.com/2009/06/18/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d1%82%d1%80%d0%b8%d0%ba%d0%be%d0%b2%d0%b5-%d1%81-arguments-callee-%d0%b2-javascript/comment-page-1/#comment-138</link>
		<dc:creator>Асен Божилов</dc:creator>
		<pubDate>Sat, 12 Dec 2009 18:56:47 +0000</pubDate>
		<guid isPermaLink="false">http://next.pixeldepo.com/?p=1069#comment-138</guid>
		<description>Хубаво е да се спомене, че в ECMA 262 5 edition, в strict mode, стойноста на свойството `callee&#039; на обекта който бива сочен от arguments е undefined. Все още не съм се зачитал навътре в документацията на ECMA5, но това ми се струва много много глупаво. Не разбирам с какво ще помогне на developer-ите като цяло това нещо. arguments.callee както си написал е идеален начин да се прави рекурсия с анонимни функции. 

Последното нещо, което си написал за оптимизацията на ECMA имплементациите. По идея `arguments&#039; свойството на AO/VO се създава при влизане в Execution Context-а. 

Вътрешното свойство [[Prototype]] сочи обекта сочен от Object.prototype. Тоест наследява от Object.prototype, за това и не е масив. 

След това се създава `callee&#039; свойството, което от своя страна има {DontEnum} атрибут. `callee&#039; е рефернция към функцията която е била извикана.

След това се създава `length&#039; свойството. Стойността му е броя на аргументите за които е предоставена стойност от caller-a. На length свойството отново се слага атрибут {DontEnum}.

За всеки подаден аргумент от caller-а за когото е предоставена стойност се създава свойство на обекта сочен от `arguments&#039;. 0 =&gt; N. На всяко свойство отново се слага атрибут {DontEnum}. Това означава, че тези свойствa не могат да се итерират във for-in.   

Та относно оптимизацията, за която си споменал. Да това може да се окаже, че не е много бързо в някой случай, но като цяло не ми се вижда много тежка операция, при положение, че така или иначе при влизане в &quot;Execution Context&quot;, се създава AO/VO. За всяко деклариране на променливи и функций се създава свойство на VO/AO с името на идентификатора. Присвоява се стойност undefined. И това всичко се случва при влизането в Execution Context-а.</description>
		<content:encoded><![CDATA[<p>Хубаво е да се спомене, че в ECMA 262 5 edition, в strict mode, стойноста на свойството `callee&#8217; на обекта който бива сочен от arguments е undefined. Все още не съм се зачитал навътре в документацията на ECMA5, но това ми се струва много много глупаво. Не разбирам с какво ще помогне на developer-ите като цяло това нещо. arguments.callee както си написал е идеален начин да се прави рекурсия с анонимни функции. </p>
<p>Последното нещо, което си написал за оптимизацията на ECMA имплементациите. По идея `arguments&#8217; свойството на AO/VO се създава при влизане в Execution Context-а. </p>
<p>Вътрешното свойство [[Prototype]] сочи обекта сочен от Object.prototype. Тоест наследява от Object.prototype, за това и не е масив. </p>
<p>След това се създава `callee&#8217; свойството, което от своя страна има {DontEnum} атрибут. `callee&#8217; е рефернция към функцията която е била извикана.</p>
<p>След това се създава `length&#8217; свойството. Стойността му е броя на аргументите за които е предоставена стойност от caller-a. На length свойството отново се слага атрибут {DontEnum}.</p>
<p>За всеки подаден аргумент от caller-а за когото е предоставена стойност се създава свойство на обекта сочен от `arguments&#8217;. 0 =&gt; N. На всяко свойство отново се слага атрибут {DontEnum}. Това означава, че тези свойствa не могат да се итерират във for-in.   </p>
<p>Та относно оптимизацията, за която си споменал. Да това може да се окаже, че не е много бързо в някой случай, но като цяло не ми се вижда много тежка операция, при положение, че така или иначе при влизане в &#8220;Execution Context&#8221;, се създава AO/VO. За всяко деклариране на променливи и функций се създава свойство на VO/AO с името на идентификатора. Присвоява се стойност undefined. И това всичко се случва при влизането в Execution Context-а.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Radoslav Stankov</title>
		<link>http://blog.rstankov.com/2009/06/18/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d1%82%d1%80%d0%b8%d0%ba%d0%be%d0%b2%d0%b5-%d1%81-arguments-callee-%d0%b2-javascript/comment-page-1/#comment-96</link>
		<dc:creator>Radoslav Stankov</dc:creator>
		<pubDate>Fri, 19 Jun 2009 08:14:16 +0000</pubDate>
		<guid isPermaLink="false">http://next.pixeldepo.com/?p=1069#comment-96</guid>
		<description>Благодаря за коментара

Така махнах spam филтъра, досега съм имал само 2 spam коментара, така че ще видя какво ще стане ако го няма 1-2 дни.

За $$(”body”).first() си прав, цялото нещо съм го заменил с document.body.appendChild(element).</description>
		<content:encoded><![CDATA[<p>Благодаря за коментара</p>
<p>Така махнах spam филтъра, досега съм имал само 2 spam коментара, така че ще видя какво ще стане ако го няма 1-2 дни.</p>
<p>За $$(”body”).first() си прав, цялото нещо съм го заменил с document.body.appendChild(element).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Иван</title>
		<link>http://blog.rstankov.com/2009/06/18/%d0%bc%d0%b0%d0%bb%d0%ba%d0%be-%d1%82%d1%80%d0%b8%d0%ba%d0%be%d0%b2%d0%b5-%d1%81-arguments-callee-%d0%b2-javascript/comment-page-1/#comment-95</link>
		<dc:creator>Иван</dc:creator>
		<pubDate>Fri, 19 Jun 2009 01:49:11 +0000</pubDate>
		<guid isPermaLink="false">http://next.pixeldepo.com/?p=1069#comment-95</guid>
		<description>(имаш много гате анти спам филтър)

Та казвах (за трети път), че до колкото съм чел, Фоо е алтернативно спелуване на Фу, което е част от ФУБАР, което е сложно прилагателно описващо ситуацията в България в момента.

Съгласен съм, че Prototype е много удобен, но да не се прекалява с него ;) Примерно защо да се ползва $$(&quot;body&quot;).first() , когато има готов селектор document.body, който трябва само да се extend-не т.е. $(document.body). По този начин пестиш един getElementsByTagName(&quot;body&quot;), едно итериране на елементите (нищо, че е само 1), и после изрично викане на първия елемент от масив с един елемент.

(абе от бая време сакам те коментирам и сега намирам за какво да се хвана)</description>
		<content:encoded><![CDATA[<p>(имаш много гате анти спам филтър)</p>
<p>Та казвах (за трети път), че до колкото съм чел, Фоо е алтернативно спелуване на Фу, което е част от ФУБАР, което е сложно прилагателно описващо ситуацията в България в момента.</p>
<p>Съгласен съм, че Prototype е много удобен, но да не се прекалява с него <img src='http://blog.rstankov.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Примерно защо да се ползва $$(&#8220;body&#8221;).first() , когато има готов селектор document.body, който трябва само да се extend-не т.е. $(document.body). По този начин пестиш един getElementsByTagName(&#8220;body&#8221;), едно итериране на елементите (нищо, че е само 1), и после изрично викане на първия елемент от масив с един елемент.</p>
<p>(абе от бая време сакам те коментирам и сега намирам за какво да се хвана)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

