<?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>Megjegyzések: Kiadták az EcmaScript 5-öt</title>
	<atom:link href="http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/feed/" rel="self" type="application/rss+xml" />
	<link>http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/</link>
	<description>/ András webkettőt fejleszt /</description>
	<lastBuildDate>Tue, 28 Feb 2012 06:21:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>Zak</title>
		<link>http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/comment-page-1/#comment-8628</link>
		<dc:creator>Zak</dc:creator>
		<pubDate>Tue, 15 Dec 2009 23:02:41 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=510#comment-8628</guid>
		<description>OK, igazad van, nem jól fejeztem ki magam. Ha szükséges, nyugodtan illeszd be a bejegyzésbe, nem tartok igényt arra, h a nevem mellette legyen, én is fordítottam különböző helyekről.</description>
		<content:encoded><![CDATA[<p>OK, igazad van, nem jól fejeztem ki magam. Ha szükséges, nyugodtan illeszd be a bejegyzésbe, nem tartok igényt arra, h a nevem mellette legyen, én is fordítottam különböző helyekről.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Bártházi András</title>
		<link>http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/comment-page-1/#comment-8618</link>
		<dc:creator>Bártházi András</dc:creator>
		<pubDate>Tue, 15 Dec 2009 16:29:48 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=510#comment-8618</guid>
		<description>Zak: Nem maradt ki (Objektum tulajdonságok rész), de valóban nem fejtettem ki. Nagyon köszönöm a kiegészítést, utólagos engedelmeddel kicsit megformáztam a hozzászólásodat!</description>
		<content:encoded><![CDATA[<p>Zak: Nem maradt ki (Objektum tulajdonságok rész), de valóban nem fejtettem ki. Nagyon köszönöm a kiegészítést, utólagos engedelmeddel kicsit megformáztam a hozzászólásodat!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Zak</title>
		<link>http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/comment-page-1/#comment-8616</link>
		<dc:creator>Zak</dc:creator>
		<pubDate>Tue, 15 Dec 2009 16:25:51 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=510#comment-8616</guid>
		<description>Az egyik legfontosabb kimaradt:

&lt;strong&gt;Tulajdonságok és leírók&lt;/strong&gt;

A tulajdonságok teljes nagygenerálon estek át. Ezek után már nem csupán objektumhoz kötött adatok lesznek, hanem átvehetjük a teljes irányítást felettük, és azon, hogyan viselkedjenek. Ezzel a lehetőséggel viszont a komplexitás is növekszik.

Az objektum tulajdonságok két csoportra választhatók:

A tulajdonság lehet a következő két lehetséges ...:
&lt;ul&gt;
&lt;li&gt;Egy érték (egy adat tulajdonság - ez a hagyományos &quot;érték&quot;, amit ismerünk és szeretünk az ECMAScript 3-ból)&lt;/li&gt;
&lt;li&gt;egy Getter és Setter metódus (&quot;Accessor&quot; tulajdonság, ami néhány modern böngészőből ismert, mint pl. a Gecko vagy a WebKit)&lt;/li&gt;
&lt;/ul&gt;

value: A tulajdonság értékét tartalmazza
Get: Függvény, ami akkor hívódik meg, amikor a tulajdonság értékét akarjuk lekérdezni
Set: Függvény, mely akkor hívódik meg, ha a tulajdonság értékét akarjuk beállítani

Továbbá a tulajdonságok lehetnek még:
&lt;ul&gt;
&lt;li&gt;Writable. Ha false, akkor a tulajdonság értéke nem változtatható meg.&lt;/li&gt;
&lt;li&gt;Configurable. Ha false, akkor bármilyen törlésre vagy attribútum változtatásra (Writable, Configurable, Enumerable) tett kísérlet sikertelen lesz (kivételdobás történik).&lt;/li&gt;
&lt;li&gt;Enumerable. Ha igaz, akkor a for (var prop in obj) {} vagy hasonló utasításban megjelenik&lt;/li&gt;
&lt;/ul&gt;

Összességében ezek a különböző attribútumok szükségessé teszik a &quot;property descriptor&quot; (tulajdonság leíró) létrehozását. 
Például egy egyszerű leíró a következőképp nézhet ki:

&lt;pre lang=&quot;JavaScript&quot;&gt;
{
	value: &quot;test&quot;,
	writable: true,
	configurable: true,
	enumerable: true
}
&lt;/pre&gt;

A három attribútum (writable, configurable, enumerable) opcionális, és alapállapotban true. Így az egyetlen attribútum, 
aminek a property descriptorban szerepelnie kell az a &quot;value&quot; vagy egy Getter/Setter páros. (Az sajnos nem derült ki számomra, 
hogy elég-e csak egy Getter vagy egy Setter, esetleg mindkettő szükséges)

Használhatjuk az Object.getOwnPropertyDescriptor metódust a tulajdonság attribútumainak lekérdezéséhez. 

&lt;strong&gt;Object.getOwnPropertyDescriptor( obj, prop )&lt;/strong&gt;

Ez az egyetlen lehetőség. Ez a metódus lehetővé teszi egy tulajdonság leírójának elérését (kiolvasását).
Az információk lekérdezésére (mivel ezek az információk nem elérhetőek a felhasználó számára, nem léteznek mint a tulajdonság
tulajdonságai, csak az EcmaScript motor tárolja őket)

Példa a használatra:

&lt;pre lang=&quot;JavaScript&quot;&gt;
var obj = { foo: &quot;test&quot; };

console.log(JSON.stringify(
	Object.getOwnPropertyDescriptor( obj, &quot;foo&quot; )
));
// {&quot;value&quot;: &quot;test&quot;, &quot;writable&quot;: true,
//  &quot;enumerable&quot;: true, &quot;configurable&quot;: true}
&lt;/pre&gt;

&lt;strong&gt;Object.defineProperty( obj, prop, desc )&lt;/strong&gt;

A metódus használatával lehetővé válik új tulajdonság hozzáadása az objektumhoz (vagy egy létező tulajdonság leírójának módosítása)
A metódus egy property descriptort vár 3. paraméterként.

Example Usage:
&lt;pre lang=&quot;JavaScript&quot;&gt;
var obj = {};

Object.defineProperty( obj, &quot;value&quot;, {
  value: true,
  writable: false,
  enumerable: true,
  configurable: true
});

(function(){
  var name = &quot;John&quot;;
 
  Object.defineProperty( obj, &quot;name&quot;, {
    get: function(){ return name; },
    set: function(value){ name = value; }
  });
})();

console.log( obj.value )
// true

console.log( obj.name );
// John

obj.name = &quot;Ted&quot;;
console.log( obj.name );
// Ted

for ( var prop in obj ) {
  console.log( prop );
}
// value
// name

obj.value = false; // Exception if in strict mode

Object.defineProperty( obj, &quot;value&quot;, {
  writable: true,
  configurable: false
});

obj.value = false;
console.log( obj.value );
// false

delete obj.value; // Exception 
&lt;/pre&gt;

Object.defineProperty az egyik legfontosabb metódus az EcmaScript új verziójában. Az összes nagyobb változtatás és újítás
ennek a metódusnak a létezését feltételezi.

&lt;strong&gt;Object.defineProperties( obj, props )&lt;/strong&gt;

Egyszerre több tulajdonság definiálását teszi lehetővé egyszerre (ahelyett h egyenként kellene megadni)

Példa implementáció:

&lt;pre lang=&quot;JavaScript&quot;&gt;
Object.defineProperties = function( obj, props ) {
  for ( var prop in props ) {
    Object.defineProperty( obj, prop, props[prop] );
  }
};
&lt;/pre&gt;

Példa a használatra:

&lt;pre lang=&quot;JavaScript&quot;&gt;
var obj = {};

Object.defineProperties(obj, {
  &quot;value&quot;: {
    value: true,
    writable: false
  },
  &quot;name&quot;: {
    value: &quot;John&quot;,
    writable: false
  }
});
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Az egyik legfontosabb kimaradt:</p>
<p><strong>Tulajdonságok és leírók</strong></p>
<p>A tulajdonságok teljes nagygenerálon estek át. Ezek után már nem csupán objektumhoz kötött adatok lesznek, hanem átvehetjük a teljes irányítást felettük, és azon, hogyan viselkedjenek. Ezzel a lehetőséggel viszont a komplexitás is növekszik.</p>
<p>Az objektum tulajdonságok két csoportra választhatók:</p>
<p>A tulajdonság lehet a következő két lehetséges &#8230;:</p>
<ul>
<li>Egy érték (egy adat tulajdonság &#8211; ez a hagyományos &#8220;érték&#8221;, amit ismerünk és szeretünk az ECMAScript 3-ból)</li>
<li>egy Getter és Setter metódus (&#8220;Accessor&#8221; tulajdonság, ami néhány modern böngészőből ismert, mint pl. a Gecko vagy a WebKit)</li>
</ul>
<p>value: A tulajdonság értékét tartalmazza<br />
Get: Függvény, ami akkor hívódik meg, amikor a tulajdonság értékét akarjuk lekérdezni<br />
Set: Függvény, mely akkor hívódik meg, ha a tulajdonság értékét akarjuk beállítani</p>
<p>Továbbá a tulajdonságok lehetnek még:</p>
<ul>
<li>Writable. Ha false, akkor a tulajdonság értéke nem változtatható meg.</li>
<li>Configurable. Ha false, akkor bármilyen törlésre vagy attribútum változtatásra (Writable, Configurable, Enumerable) tett kísérlet sikertelen lesz (kivételdobás történik).</li>
<li>Enumerable. Ha igaz, akkor a for (var prop in obj) {} vagy hasonló utasításban megjelenik</li>
</ul>
<p>Összességében ezek a különböző attribútumok szükségessé teszik a &#8220;property descriptor&#8221; (tulajdonság leíró) létrehozását.<br />
Például egy egyszerű leíró a következőképp nézhet ki:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span style="color: #009900;">&#123;</span>
	value<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;test&quot;</span><span style="color: #339933;">,</span>
	writable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
	configurable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
	enumerable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>A három attribútum (writable, configurable, enumerable) opcionális, és alapállapotban true. Így az egyetlen attribútum,<br />
aminek a property descriptorban szerepelnie kell az a &#8220;value&#8221; vagy egy Getter/Setter páros. (Az sajnos nem derült ki számomra,<br />
hogy elég-e csak egy Getter vagy egy Setter, esetleg mindkettő szükséges)</p>
<p>Használhatjuk az Object.getOwnPropertyDescriptor metódust a tulajdonság attribútumainak lekérdezéséhez. </p>
<p><strong>Object.getOwnPropertyDescriptor( obj, prop )</strong></p>
<p>Ez az egyetlen lehetőség. Ez a metódus lehetővé teszi egy tulajdonság leírójának elérését (kiolvasását).<br />
Az információk lekérdezésére (mivel ezek az információk nem elérhetőek a felhasználó számára, nem léteznek mint a tulajdonság<br />
tulajdonságai, csak az EcmaScript motor tárolja őket)</p>
<p>Példa a használatra:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> obj <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> foo<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;test&quot;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
console.<span style="color: #006600;">log</span><span style="color: #009900;">&#40;</span>JSON.<span style="color: #006600;">stringify</span><span style="color: #009900;">&#40;</span>
	Object.<span style="color: #006600;">getOwnPropertyDescriptor</span><span style="color: #009900;">&#40;</span> obj<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;foo&quot;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// {&quot;value&quot;: &quot;test&quot;, &quot;writable&quot;: true,</span>
<span style="color: #006600; font-style: italic;">//  &quot;enumerable&quot;: true, &quot;configurable&quot;: true}</span></pre></div></div>

<p><strong>Object.defineProperty( obj, prop, desc )</strong></p>
<p>A metódus használatával lehetővé válik új tulajdonság hozzáadása az objektumhoz (vagy egy létező tulajdonság leírójának módosítása)<br />
A metódus egy property descriptort vár 3. paraméterként.</p>
<p>Example Usage:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> obj <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
Object.<span style="color: #006600;">defineProperty</span><span style="color: #009900;">&#40;</span> obj<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
  value<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
  writable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>
  enumerable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
  configurable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#40;</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> <span style="color: #000066;">name</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;John&quot;</span><span style="color: #339933;">;</span>
&nbsp;
  Object.<span style="color: #006600;">defineProperty</span><span style="color: #009900;">&#40;</span> obj<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;name&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
    get<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; font-weight: bold;">return</span> <span style="color: #000066;">name</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    set<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000066;">name</span> <span style="color: #339933;">=</span> value<span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</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: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
console.<span style="color: #006600;">log</span><span style="color: #009900;">&#40;</span> obj.<span style="color: #006600;">value</span> <span style="color: #009900;">&#41;</span>
<span style="color: #006600; font-style: italic;">// true</span>
&nbsp;
console.<span style="color: #006600;">log</span><span style="color: #009900;">&#40;</span> obj.<span style="color: #000066;">name</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// John</span>
&nbsp;
obj.<span style="color: #000066;">name</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Ted&quot;</span><span style="color: #339933;">;</span>
console.<span style="color: #006600;">log</span><span style="color: #009900;">&#40;</span> obj.<span style="color: #000066;">name</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// Ted</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> prop <span style="color: #000066; font-weight: bold;">in</span> obj <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  console.<span style="color: #006600;">log</span><span style="color: #009900;">&#40;</span> prop <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #006600; font-style: italic;">// value</span>
<span style="color: #006600; font-style: italic;">// name</span>
&nbsp;
obj.<span style="color: #006600;">value</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Exception if in strict mode</span>
&nbsp;
Object.<span style="color: #006600;">defineProperty</span><span style="color: #009900;">&#40;</span> obj<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
  writable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
  configurable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
obj.<span style="color: #006600;">value</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
console.<span style="color: #006600;">log</span><span style="color: #009900;">&#40;</span> obj.<span style="color: #006600;">value</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// false</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">delete</span> obj.<span style="color: #006600;">value</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Exception</span></pre></div></div>

<p>Object.defineProperty az egyik legfontosabb metódus az EcmaScript új verziójában. Az összes nagyobb változtatás és újítás<br />
ennek a metódusnak a létezését feltételezi.</p>
<p><strong>Object.defineProperties( obj, props )</strong></p>
<p>Egyszerre több tulajdonság definiálását teszi lehetővé egyszerre (ahelyett h egyenként kellene megadni)</p>
<p>Példa implementáció:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript">Object.<span style="color: #006600;">defineProperties</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span> obj<span style="color: #339933;">,</span> props <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> prop <span style="color: #000066; font-weight: bold;">in</span> props <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    Object.<span style="color: #006600;">defineProperty</span><span style="color: #009900;">&#40;</span> obj<span style="color: #339933;">,</span> prop<span style="color: #339933;">,</span> props<span style="color: #009900;">&#91;</span>prop<span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Példa a használatra:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> obj <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
Object.<span style="color: #006600;">defineProperties</span><span style="color: #009900;">&#40;</span>obj<span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
    value<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
    writable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span>
  <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
  <span style="color: #3366CC;">&quot;name&quot;</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
    value<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;John&quot;</span><span style="color: #339933;">,</span>
    writable<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
	</item>
	<item>
		<title>fraki</title>
		<link>http://webakademia.hu/2009/12/kiadtak-az-ecmascript-5-ot/comment-page-1/#comment-8549</link>
		<dc:creator>fraki</dc:creator>
		<pubDate>Sat, 12 Dec 2009 19:32:37 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=510#comment-8549</guid>
		<description>Éljen, éljen.</description>
		<content:encoded><![CDATA[<p>Éljen, éljen.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
