<?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: ECMA-262-3 in detail. Chapter 7.2. OOP: ECMAScript implementation.</title>
	<atom:link href="http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/feed/" rel="self" type="application/rss+xml" />
	<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/</link>
	<description>by Dmitry Soshnikov</description>
	<lastBuildDate>Sun, 13 May 2012 08:41:14 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Dmitry Soshnikov</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-13875</link>
		<dc:creator>Dmitry Soshnikov</dc:creator>
		<pubDate>Fri, 04 May 2012 03:34:12 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-13875</guid>
		<description>@&lt;b&gt;Jiang&lt;/b&gt;

Yes, absolutely correct, there is such a check first. Though this should go without saying, because the name of the &lt;code&gt;instanceof&lt;/code&gt; operator already assumes that it works with an instance on the left hand side and with the &lt;em&gt;constructor function&lt;/em&gt; on the right hand side.

Notice also, that in first your example &lt;code&gt;c1.prototype = c2;&lt;/code&gt; does nothing special but just creates a casual property &lt;code&gt;prototype&lt;/code&gt; on the object, it doesn&#039;t setup inheritance in this case, since again &lt;code&gt;c1&lt;/code&gt; is not a constructor. If you want to play with inheritance of simple object, try using &lt;code&gt;c1.__proto__ = c2;&lt;/code&gt; (works not in all browsers), or from ES5 -- &lt;code&gt;var c1 = Object.create(c2);&lt;/code&gt;.</description>
		<content:encoded><![CDATA[<p>@<b>Jiang</b></p>
<p>Yes, absolutely correct, there is such a check first. Though this should go without saying, because the name of the <code>instanceof</code> operator already assumes that it works with an instance on the left hand side and with the <em>constructor function</em> on the right hand side.</p>
<p>Notice also, that in first your example <code>c1.prototype = c2;</code> does nothing special but just creates a casual property <code>prototype</code> on the object, it doesn&#8217;t setup inheritance in this case, since again <code>c1</code> is not a constructor. If you want to play with inheritance of simple object, try using <code>c1.__proto__ = c2;</code> (works not in all browsers), or from ES5 &#8212; <code>var c1 = Object.create(c2);</code>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jiang</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-13728</link>
		<dc:creator>Jiang</dc:creator>
		<pubDate>Mon, 30 Apr 2012 08:52:59 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-13728</guid>
		<description>For the &quot;Feature of instanceof operator&quot; part, you said that &quot;All the instanceof operator does is only takes an object prototype — foo.[[Prototype]], and checks its presence in the prototype chain, starring the analysis from the Foo.prototype.&quot;

I have tried a demo as below:
[js]
function B() {}
var b = new B();
alert(b instanceof B); // true
			
var c1 = {};
var c2 = {};
var c3 = {};
c1.prototype = c2;
c2.prototype = c3;
c3.prototype = B.prototype;
alert(b instanceof c3); // true
[/js]
But it says that &quot;Uncaught TypeError: Expecting a function in instanceof check, but got #&lt;B&gt;&quot; under Chrome.
After I changed the code as below:
[js]
function B() {}
var b = new B();
alert(b instanceof B); // true
			
var c1 = {};
var c2 = {};
var c3 = function() {};
c1.prototype = c2;
c2.prototype = c3;
c3.prototype = B.prototype;
alert(b instanceof c3); // true
[/js]

So, I think maybe the function check is first applied for the instanceof operator, after that, just as you have mentioned in this article.</description>
		<content:encoded><![CDATA[<p>For the &#8220;Feature of instanceof operator&#8221; part, you said that &#8220;All the instanceof operator does is only takes an object prototype — foo.[[Prototype]], and checks its presence in the prototype chain, starring the analysis from the Foo.prototype.&#8221;</p>
<p>I have tried a demo as below:</p>
<pre class="brush: jscript; title: ;">
function B() {}
var b = new B();
alert(b instanceof B); // true

var c1 = {};
var c2 = {};
var c3 = {};
c1.prototype = c2;
c2.prototype = c3;
c3.prototype = B.prototype;
alert(b instanceof c3); // true
</pre>
<p>But it says that &#8220;Uncaught TypeError: Expecting a function in instanceof check, but got #&lt;B&gt;&#8221; under Chrome.<br />
After I changed the code as below:</p>
<pre class="brush: jscript; title: ;">
function B() {}
var b = new B();
alert(b instanceof B); // true

var c1 = {};
var c2 = {};
var c3 = function() {};
c1.prototype = c2;
c2.prototype = c3;
c3.prototype = B.prototype;
alert(b instanceof c3); // true
</pre>
<p>So, I think maybe the function check is first applied for the instanceof operator, after that, just as you have mentioned in this article.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry A. Soshnikov</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-6125</link>
		<dc:creator>Dmitry A. Soshnikov</dc:creator>
		<pubDate>Thu, 10 Mar 2011 12:43:52 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-6125</guid>
		<description>@&lt;b&gt;Senxiv&lt;/b&gt;

&lt;blockquote&gt;Since you can get ‘x’ via &lt;code&gt;A.prototype&lt;/code&gt; anyway, why is it so important to make it native?&lt;/blockquote&gt;

It&#039;s only to imitate the approach with classes -- there state variables are native, not inherited. If you use a prototypical approach you may not create own &lt;code&gt;x&lt;/code&gt;, but reuse it from the parent prototype.

Notice though, that there is a subtle case with object properties here. E.g.:

[js]// constructor

function Foo(name) {
  this.name = name;
}

// prototype (shared) properties

Foo.prototype.data = [1, 2, 3];

Foo.prototype.showData = function () {
  console.log(this.name, this.data);
};

// instances

var foo1 = new Foo(&quot;foo1&quot;);
var foo2 = new Foo(&quot;foo2&quot;);

// both instances use
// the same default value of data

foo1.showData(); // &quot;foo1&quot;, [1, 2, 3]
foo2.showData(); // &quot;foo2&quot;, [1, 2, 3]

// however, if we change the
// data from one instance

foo1.data.push(4);

// it mirrors on the second instance 

foo1.showData(); // &quot;foo1&quot;, [1, 2, 3, 4]
foo2.showData(); // &quot;foo2&quot;, [1, 2, 3, 4][/js]

So in case when we need own properties (i.e. per instance), we create them in the constructor, not on the prototype. The prototype though can store some default values, but the case above should be considered.

&lt;blockquote&gt;In java(static classical language), inheritance is intuitive, you can understand the relationships among classes, instances at first glance. But with javascript, all the prototype properties, __proto__, constructor properties, it’s very complicated.&lt;/blockquote&gt;

That&#039;s why you may create such a wrapper and program in classical approach not bothering with prototypal nature. But actually, there is no big difference in classical approach and prototypal -- in both cases the inheritance chain is considered: in the class-based system it&#039;s a chain of classes, in the prototype-based -- it&#039;s a prototype-chain.

Take a look only on CoffeeScript&#039;s classes: http://jashkenas.github.com/coffee-script/#classes You may see how Coffee compiles its code into JS and to understand how JS works.

&lt;blockquote&gt;Are there any best practices in JavaScript inheritance? Please suggest some reading materials.&lt;/blockquote&gt;

It depends on the situation. In one case it can be convenient to program in classical approach. In other one -- to use the prototypal one. You may read also &lt;a href=&quot;http://dmitrysoshnikov.com/ecmascript/es5-chapter-1-properties-and-property-descriptors/&quot; rel=&quot;nofollow&quot;&gt;chapter 1 of the ES5 series&lt;/a&gt; where the OOP API of ES5 (with controlling property attributes, with inheriting without constructors via &lt;code&gt;Object.create&lt;/code&gt;, etc) is described.

Dmitry.</description>
		<content:encoded><![CDATA[<p>@<b>Senxiv</b></p>
<blockquote><p>Since you can get ‘x’ via <code>A.prototype</code> anyway, why is it so important to make it native?</p></blockquote>
<p>It&#8217;s only to imitate the approach with classes &#8212; there state variables are native, not inherited. If you use a prototypical approach you may not create own <code>x</code>, but reuse it from the parent prototype.</p>
<p>Notice though, that there is a subtle case with object properties here. E.g.:</p>
<pre class="brush: jscript; title: ;">// constructor

function Foo(name) {
  this.name = name;
}

// prototype (shared) properties

Foo.prototype.data = [1, 2, 3];

Foo.prototype.showData = function () {
  console.log(this.name, this.data);
};

// instances

var foo1 = new Foo(&quot;foo1&quot;);
var foo2 = new Foo(&quot;foo2&quot;);

// both instances use
// the same default value of data

foo1.showData(); // &quot;foo1&quot;, [1, 2, 3]
foo2.showData(); // &quot;foo2&quot;, [1, 2, 3]

// however, if we change the
// data from one instance

foo1.data.push(4);

// it mirrors on the second instance 

foo1.showData(); // &quot;foo1&quot;, [1, 2, 3, 4]
foo2.showData(); // &quot;foo2&quot;, [1, 2, 3, 4]</pre>
<p>So in case when we need own properties (i.e. per instance), we create them in the constructor, not on the prototype. The prototype though can store some default values, but the case above should be considered.</p>
<blockquote><p>In java(static classical language), inheritance is intuitive, you can understand the relationships among classes, instances at first glance. But with javascript, all the prototype properties, __proto__, constructor properties, it’s very complicated.</p></blockquote>
<p>That&#8217;s why you may create such a wrapper and program in classical approach not bothering with prototypal nature. But actually, there is no big difference in classical approach and prototypal &#8212; in both cases the inheritance chain is considered: in the class-based system it&#8217;s a chain of classes, in the prototype-based &#8212; it&#8217;s a prototype-chain.</p>
<p>Take a look only on CoffeeScript&#8217;s classes: <a href="http://jashkenas.github.com/coffee-script/#classes" rel="nofollow">http://jashkenas.github.com/coffee-script/#classes</a> You may see how Coffee compiles its code into JS and to understand how JS works.</p>
<blockquote><p>Are there any best practices in JavaScript inheritance? Please suggest some reading materials.</p></blockquote>
<p>It depends on the situation. In one case it can be convenient to program in classical approach. In other one &#8212; to use the prototypal one. You may read also <a href="http://dmitrysoshnikov.com/ecmascript/es5-chapter-1-properties-and-property-descriptors/" rel="nofollow">chapter 1 of the ES5 series</a> where the OOP API of ES5 (with controlling property attributes, with inheriting without constructors via <code>Object.create</code>, etc) is described.</p>
<p>Dmitry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Senxiv</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-6121</link>
		<dc:creator>Senxiv</dc:creator>
		<pubDate>Thu, 10 Mar 2011 07:30:18 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-6121</guid>
		<description>Dmitry, 
I don&#039;t quite understand the inheritance section. Since you can get &#039;x&#039; via &lt;code&gt;A.prototype&lt;/code&gt; anyway, why is it so important to make it native? The second approach is advanced, but it&#039;s complicated. I read it twice to figure it out. 

In java(static classical language), inheritance is intuitive, you can understand the relationships among classes, instances at first glance. But with javascript, all the prototype properties, __proto__, constructor properties, it&#039;s very complicated. (Oh, thank you for your figure 3 in JavaScript: the core article. It helps a lot understanding prototype chain. ) 

Are there any best practices in JavaScript inheritance? Please suggest some reading materials. :-)</description>
		<content:encoded><![CDATA[<p>Dmitry,<br />
I don&#8217;t quite understand the inheritance section. Since you can get &#8216;x&#8217; via <code>A.prototype</code> anyway, why is it so important to make it native? The second approach is advanced, but it&#8217;s complicated. I read it twice to figure it out. </p>
<p>In java(static classical language), inheritance is intuitive, you can understand the relationships among classes, instances at first glance. But with javascript, all the prototype properties, __proto__, constructor properties, it&#8217;s very complicated. (Oh, thank you for your figure 3 in JavaScript: the core article. It helps a lot understanding prototype chain. ) </p>
<p>Are there any best practices in JavaScript inheritance? Please suggest some reading materials. <img src='http://dmitrysoshnikov.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry A. Soshnikov</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-5909</link>
		<dc:creator>Dmitry A. Soshnikov</dc:creator>
		<pubDate>Wed, 23 Feb 2011 17:35:30 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-5909</guid>
		<description>@&lt;b&gt;Struppi&lt;/b&gt;

Oh, it was my previous thoughts about strict mode (and this comment above was written before I wrote a detail analysis on strict mode and dug it deeply).

Now my meaning is changed since strict mode in ES5 (and in Perl I guess, though I&#039;m not a Perl programmer) is a &lt;em&gt;transitional version&lt;/em&gt; of the language. The next version, ES6 will be based exactly on ES5-strict.

The thing I mentioned (which probably I don&#039;t like) is exactly &lt;em&gt;splitting&lt;/em&gt; the language on strict and non-strict. I.e. &lt;em&gt;constant&lt;/em&gt; presence of these two modes. If to accept that this mode is only transitional (and in ES6 we won&#039;t have to choose the mode) it&#039;s completely OK -- just a graceful transition from old version (with deprecated stuff) to the new one.

A detailed info on strict mode exactly in ES can be found in the appropriate &lt;a href=&quot;http://dmitrysoshnikov.com/ecmascript/es5-chapter-2-strict-mode/&quot; rel=&quot;nofollow&quot;&gt;ECMA-262-5 in detail. Chapter 2. Strict Mode.&lt;/a&gt;.

Dmitry.</description>
		<content:encoded><![CDATA[<p>@<b>Struppi</b></p>
<p>Oh, it was my previous thoughts about strict mode (and this comment above was written before I wrote a detail analysis on strict mode and dug it deeply).</p>
<p>Now my meaning is changed since strict mode in ES5 (and in Perl I guess, though I&#8217;m not a Perl programmer) is a <em>transitional version</em> of the language. The next version, ES6 will be based exactly on ES5-strict.</p>
<p>The thing I mentioned (which probably I don&#8217;t like) is exactly <em>splitting</em> the language on strict and non-strict. I.e. <em>constant</em> presence of these two modes. If to accept that this mode is only transitional (and in ES6 we won&#8217;t have to choose the mode) it&#8217;s completely OK &#8212; just a graceful transition from old version (with deprecated stuff) to the new one.</p>
<p>A detailed info on strict mode exactly in ES can be found in the appropriate <a href="http://dmitrysoshnikov.com/ecmascript/es5-chapter-2-strict-mode/" rel="nofollow">ECMA-262-5 in detail. Chapter 2. Strict Mode.</a>.</p>
<p>Dmitry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Struppi</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-5908</link>
		<dc:creator>Struppi</dc:creator>
		<pubDate>Wed, 23 Feb 2011 17:13:48 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-5908</guid>
		<description>&lt;blockquote&gt;(as it is in Perl — ask any professional Perl programmer whether he uses strict mode – he’ll answer: “Yes of course”, but ask then “why?” — there will be no unequivocal answer), providing useless overloading in code. And of course the most funny answer is “Programming in strict mode is more professional”.&lt;/blockquote&gt;

No, the only answer is, that you avoid typos - that&#039;s the only, but good reason. 

But I think there are some difference between use strict in Perl and JS. But I won&#039;t argue for strict in JS, because I don&#039;t know enough about it.</description>
		<content:encoded><![CDATA[<blockquote><p>(as it is in Perl — ask any professional Perl programmer whether he uses strict mode – he’ll answer: “Yes of course”, but ask then “why?” — there will be no unequivocal answer), providing useless overloading in code. And of course the most funny answer is “Programming in strict mode is more professional”.</p></blockquote>
<p>No, the only answer is, that you avoid typos &#8211; that&#8217;s the only, but good reason. </p>
<p>But I think there are some difference between use strict in Perl and JS. But I won&#8217;t argue for strict in JS, because I don&#8217;t know enough about it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Durr</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-4776</link>
		<dc:creator>Richard Durr</dc:creator>
		<pubDate>Wed, 22 Dec 2010 13:14:43 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-4776</guid>
		<description>A very informative and well written article. Thanks! 

Would have saved me two weeks of recherches, if I&#039;d found it earlier :D</description>
		<content:encoded><![CDATA[<p>A very informative and well written article. Thanks! </p>
<p>Would have saved me two weeks of recherches, if I&#8217;d found it earlier <img src='http://dmitrysoshnikov.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: insector</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-4384</link>
		<dc:creator>insector</dc:creator>
		<pubDate>Tue, 30 Nov 2010 22:35:49 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-4384</guid>
		<description>Awesome articles, Dmitry. Been a professional JavaScript developer for eleven years and this still gave quite a bit of insight into a few things that I was unaware of.

Someone should have told people about JavaScript OO internals ten years ago, I salute you for making this effort!</description>
		<content:encoded><![CDATA[<p>Awesome articles, Dmitry. Been a professional JavaScript developer for eleven years and this still gave quite a bit of insight into a few things that I was unaware of.</p>
<p>Someone should have told people about JavaScript OO internals ten years ago, I salute you for making this effort!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry A. Soshnikov</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-3367</link>
		<dc:creator>Dmitry A. Soshnikov</dc:creator>
		<pubDate>Mon, 27 Sep 2010 09:36:07 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-3367</guid>
		<description>@&lt;b&gt;gniavaj&lt;/b&gt;

&lt;blockquote&gt;when the program run to the anonymous function on firefox, the istype function is called.&lt;/blockquote&gt;

It&#039;s the subtle case of ASI (Automatic semicolon insertion) mechanism. The surrounding parentheses of your second immediately invoked function, actually the &lt;em&gt;call parentheses of the first function&lt;/em&gt;.

I.e. the first anonymous function is created and also immediately executed (at this moment it isn&#039;t even assigned yet to &lt;code&gt;istype&lt;/code&gt; variable). You may rewrite this code in this way:

[js]
// pass the second function as
// argument for the first one
(function(obj) {...}(function(){alert(&quot;i am running!&quot;)}));[/js]

Thus, as you see, the &lt;em&gt;second function is passed as an argument&lt;/em&gt; for the first one.

Accordingly, if you &lt;em&gt;call the second function&lt;/em&gt; before passing as argument, then the result of the second function is passed as the argument for the first one function:

[js]

// pass the result of the second function -
// see call parentheses - (), the result is
// undefined, and this will be the value of
// &quot;obj&quot; argument
(function(obj) {...}(function(){alert(&quot;i am running!&quot;)()}));[/js]

And only after that the result of the first function is assigned to the &lt;code&gt;istype&lt;/code&gt; variable (which is also &lt;code&gt;undefined&lt;/code&gt; -- i.e. the implicit returned value of the first function).

To fix your situation, just put explicit semicolon after the first function. Thus, the parser understands where the first part ends and starts the second one:

[js]var istype = function(obj)
{
    debugger;
};
(function(){
    alert(&quot;i am running!&quot;)
})();[/js]

P.S.: Take a look also on &lt;a href=&quot;http://dmitrysoshnikov.com/ecmascript/chapter-5-functions/&quot; rel=&quot;nofollow&quot;&gt;Chapter 5. Functions&lt;/a&gt;.

Dmitry.</description>
		<content:encoded><![CDATA[<p>@<b>gniavaj</b></p>
<blockquote><p>when the program run to the anonymous function on firefox, the istype function is called.</p></blockquote>
<p>It&#8217;s the subtle case of ASI (Automatic semicolon insertion) mechanism. The surrounding parentheses of your second immediately invoked function, actually the <em>call parentheses of the first function</em>.</p>
<p>I.e. the first anonymous function is created and also immediately executed (at this moment it isn&#8217;t even assigned yet to <code>istype</code> variable). You may rewrite this code in this way:</p>
<pre class="brush: jscript; title: ;">
// pass the second function as
// argument for the first one
(function(obj) {...}(function(){alert(&quot;i am running!&quot;)}));</pre>
<p>Thus, as you see, the <em>second function is passed as an argument</em> for the first one.</p>
<p>Accordingly, if you <em>call the second function</em> before passing as argument, then the result of the second function is passed as the argument for the first one function:</p>
<pre class="brush: jscript; title: ;">

// pass the result of the second function -
// see call parentheses - (), the result is
// undefined, and this will be the value of
// &quot;obj&quot; argument
(function(obj) {...}(function(){alert(&quot;i am running!&quot;)()}));</pre>
<p>And only after that the result of the first function is assigned to the <code>istype</code> variable (which is also <code>undefined</code> &#8212; i.e. the implicit returned value of the first function).</p>
<p>To fix your situation, just put explicit semicolon after the first function. Thus, the parser understands where the first part ends and starts the second one:</p>
<pre class="brush: jscript; title: ;">var istype = function(obj)
{
    debugger;
};
(function(){
    alert(&quot;i am running!&quot;)
})();</pre>
<p>P.S.: Take a look also on <a href="http://dmitrysoshnikov.com/ecmascript/chapter-5-functions/" rel="nofollow">Chapter 5. Functions</a>.</p>
<p>Dmitry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gniavaj</title>
		<link>http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/comment-page-1/#comment-3366</link>
		<dc:creator>gniavaj</dc:creator>
		<pubDate>Mon, 27 Sep 2010 09:19:25 +0000</pubDate>
		<guid isPermaLink="false">http://dmitrysoshnikov.com/?p=75#comment-3366</guid>
		<description>sorry,the anonymous function should be like this:

[js](function(){
    alert(&quot;i am running!&quot;)
})();[/js]</description>
		<content:encoded><![CDATA[<p>sorry,the anonymous function should be like this:</p>
<pre class="brush: jscript; title: ;">(function(){
    alert(&quot;i am running!&quot;)
})();</pre>
]]></content:encoded>
	</item>
</channel>
</rss>

