<?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: Javascript anonymous functions</title>
	<atom:link href="http://helephant.com/2008/08/javascript-anonymous-functions/feed/" rel="self" type="application/rss+xml" />
	<link>http://helephant.com/2008/08/javascript-anonymous-functions/</link>
	<description></description>
	<lastBuildDate>Mon, 01 Feb 2010 01:30:39 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Dynamically change SearchSQL for an SSA field client-side - Hints, Tips and Tricks</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-4464</link>
		<dc:creator>Dynamically change SearchSQL for an SSA field client-side - Hints, Tips and Tricks</dc:creator>
		<pubDate>Mon, 25 Jan 2010 12:03:40 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-4464</guid>
		<description>[...] we need to strip out the function name as when you assign a function to a variable it should be an anonymous function. To strip the name out we use the replace method [...]</description>
		<content:encoded><![CDATA[<p>[...] we need to strip out the function name as when you assign a function to a variable it should be an anonymous function. To strip the name out we use the replace method [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javascript method context &#8211; Helephant.com</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-4025</link>
		<dc:creator>Javascript method context &#8211; Helephant.com</dc:creator>
		<pubDate>Fri, 08 Jan 2010 21:34:04 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-4025</guid>
		<description>[...] How javascript objects workBuilding simple objectsFunctions are first class objects in javascriptJavascript anonymous functionsConstructor functionsJavascript closuresJavascript object prototypeJavascript prototype [...]</description>
		<content:encoded><![CDATA[<p>[...] How javascript objects workBuilding simple objectsFunctions are first class objects in javascriptJavascript anonymous functionsConstructor functionsJavascript closuresJavascript object prototypeJavascript prototype [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: helen</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-2562</link>
		<dc:creator>helen</dc:creator>
		<pubDate>Sun, 01 Nov 2009 18:32:34 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-2562</guid>
		<description>Thanks for letting me know! I don&#039;t know what happened there. I&#039;ve fixed it up now. :)</description>
		<content:encoded><![CDATA[<p>Thanks for letting me know! I don&#8217;t know what happened there. I&#8217;ve fixed it up now. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anon</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-2386</link>
		<dc:creator>anon</dc:creator>
		<pubDate>Sun, 25 Oct 2009 22:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-2386</guid>
		<description>Your semi-colons are in the wrong place in your first eatcake example.</description>
		<content:encoded><![CDATA[<p>Your semi-colons are in the wrong place in your first eatcake example.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Delicious Trailmaker Tutorial &#171; Information Organization Lab</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-924</link>
		<dc:creator>Delicious Trailmaker Tutorial &#171; Information Organization Lab</dc:creator>
		<pubDate>Wed, 02 Sep 2009 00:01:02 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-924</guid>
		<description>[...] else in your code. We&#8217;ll discuss anonymous functions more in lecture two; You can also read this guide to anonymous functions in [...]</description>
		<content:encoded><![CDATA[<p>[...] else in your code. We&#8217;ll discuss anonymous functions more in lecture two; You can also read this guide to anonymous functions in [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javascript prototype chaining - Helephant.com</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-928</link>
		<dc:creator>Javascript prototype chaining - Helephant.com</dc:creator>
		<pubDate>Mon, 17 Aug 2009 09:29:13 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-928</guid>
		<description>[...] strengths as a dynamic language with features like first class functions, closures and anonymous functions to write concise and modular code rather than trying to make it act like a different type of [...]</description>
		<content:encoded><![CDATA[<p>[...] strengths as a dynamic language with features like first class functions, closures and anonymous functions to write concise and modular code rather than trying to make it act like a different type of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralph</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-927</link>
		<dc:creator>Ralph</dc:creator>
		<pubDate>Sun, 24 May 2009 19:39:50 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-927</guid>
		<description>After I wrote that first comment, I searched for &quot;function literals,&quot; and found that the term is already used in connection with Javascript. As far as I can tell, in that context, a &quot;function literal&quot; is an instance of a lambda expression. But now it occurs to me that providing a function literal capability does not, by itself, allow a program to construct a completely new function at runtime. So now I&#039;m mixed up again on the terminology. Does Javascript have the full &quot;lambda&quot; capability, or not?

As you put it, &quot;It’s such a pity they made anonymous functions into such a big scary concept.&quot;

I agree. Yet there are genuine problems with translating this kind of algorithm-think into human thought. For example, I was just reading something about the &quot;lambda calculus&quot; (yuck, what a name) here:

http://en.wikipedia.org/wiki/Lambda_calculus

In that article, below the heading &quot;Informal Description,&quot; the following three lines are said to be equivalent:

I:      (λ f. f 3) (λ x. x + 2)
II:     (λ x. x + 2) 3
III:    3 + 2

When I finally forced myself to work through that derivation (yes, it is a derivation), I thought, Wow, that actually isn&#039;t so easy!

My point is not just that lambda calculus is tricky -- though it is tricky -- but rather that the often-observed notational and descriptive problems with Lisp probably arise because it&#039;s so difficult to describe such manipulations in English. Just try to write the above three lines in ordinary words! Here is my attempt, including pitiful references to nonexistent argument types.

I:   &quot;The function which applies its argument to 3, applied to the function which adds two to its argument&quot;
II:  &quot;The function which adds two to its argument, applied to 3&quot;
III: &quot;3 plus 2&quot;

While I don&#039;t feel exactly stupid when I try to follow the above, I certainly don&#039;t feel all beamed-up and glowing with intelligence, either. Here is one possible improvement, using a more familiar way of talking about functions, with the disadvantage that the order of writing is reversed:

I:   &quot;Feed (the function which adds two to its argument) to (the function which applies its argument to 3)&quot;
II:  &quot;Feed 3 to (the function which adds two to its argument)&quot;
III: &quot;3 added to 2&quot;

Suppose we try naming these hitherto-anonymous functions. Is the result any easier to understand?

DECLARATIONS:
1.      plus_two = &quot;the function which adds two to its argument&quot;
2.      apply_to_three = &quot;the function which applies its argument to 3&quot;

APPLICATIONS:
I:   apply_to_three(plus_two)
II:  plus_two(3)
III: 3 + 2

Now I see why it&#039;s so difficult to describe what&#039;s going on: the words get tangled up right away, even at that simple level. I guess that&#039;s why Lisp winds up getting taught by example rather than by explanation, and why we are asked to use such peculiar words as &quot;currying&quot; and &quot;closure,&quot; words which seemed to drop on us from an unknown sky.

All this is very interesting, but is it useful? That question has been argued back and forth, using an infinite number of words, since the beginnings of Lisp.

There&#039;s really no answer; nevertheless, it&#039;s easy to observe that Lisp is hardly ever seen in a practical application. Some authorities would claim that&#039;s only because the average programmer is stupid or ill-trained, and of course one is forced to consider that possibility, but after 50 years? By now the true brainiacs could have populated their own small country, with no mortals like us allowed, having three generations of pure functional thinkers! They would have been cranking out advanced-civilization software for decades, while we &quot;normals&quot; slowly returned to the life of our primate forebears, climbing up into the trees, taking it easy.

Yet nothing remotely similar has happened, despite valiant efforts. Nor did Lisp lead to huge new advances in &quot;artificial intelligence&quot; -- sorry, that just didn&#039;t work out.

Conclusion: I&#039;m not rushing to switch to Lisp, or Ruby, but I still have high hopes for Javascript.</description>
		<content:encoded><![CDATA[<p>After I wrote that first comment, I searched for &#8220;function literals,&#8221; and found that the term is already used in connection with Javascript. As far as I can tell, in that context, a &#8220;function literal&#8221; is an instance of a lambda expression. But now it occurs to me that providing a function literal capability does not, by itself, allow a program to construct a completely new function at runtime. So now I&#8217;m mixed up again on the terminology. Does Javascript have the full &#8220;lambda&#8221; capability, or not?</p>
<p>As you put it, &#8220;It’s such a pity they made anonymous functions into such a big scary concept.&#8221;</p>
<p>I agree. Yet there are genuine problems with translating this kind of algorithm-think into human thought. For example, I was just reading something about the &#8220;lambda calculus&#8221; (yuck, what a name) here:</p>
<p><a href="http://en.wikipedia.org/wiki/Lambda_calculus" rel="nofollow">http://en.wikipedia.org/wiki/Lambda_calculus</a></p>
<p>In that article, below the heading &#8220;Informal Description,&#8221; the following three lines are said to be equivalent:</p>
<p>I:      (λ f. f 3) (λ x. x + 2)<br />
II:     (λ x. x + 2) 3<br />
III:    3 + 2</p>
<p>When I finally forced myself to work through that derivation (yes, it is a derivation), I thought, Wow, that actually isn&#8217;t so easy!</p>
<p>My point is not just that lambda calculus is tricky &#8212; though it is tricky &#8212; but rather that the often-observed notational and descriptive problems with Lisp probably arise because it&#8217;s so difficult to describe such manipulations in English. Just try to write the above three lines in ordinary words! Here is my attempt, including pitiful references to nonexistent argument types.</p>
<p>I:   &#8220;The function which applies its argument to 3, applied to the function which adds two to its argument&#8221;<br />
II:  &#8220;The function which adds two to its argument, applied to 3&#8243;<br />
III: &#8220;3 plus 2&#8243;</p>
<p>While I don&#8217;t feel exactly stupid when I try to follow the above, I certainly don&#8217;t feel all beamed-up and glowing with intelligence, either. Here is one possible improvement, using a more familiar way of talking about functions, with the disadvantage that the order of writing is reversed:</p>
<p>I:   &#8220;Feed (the function which adds two to its argument) to (the function which applies its argument to 3)&#8221;<br />
II:  &#8220;Feed 3 to (the function which adds two to its argument)&#8221;<br />
III: &#8220;3 added to 2&#8243;</p>
<p>Suppose we try naming these hitherto-anonymous functions. Is the result any easier to understand?</p>
<p>DECLARATIONS:<br />
1.      plus_two = &#8220;the function which adds two to its argument&#8221;<br />
2.      apply_to_three = &#8220;the function which applies its argument to 3&#8243;</p>
<p>APPLICATIONS:<br />
I:   apply_to_three(plus_two)<br />
II:  plus_two(3)<br />
III: 3 + 2</p>
<p>Now I see why it&#8217;s so difficult to describe what&#8217;s going on: the words get tangled up right away, even at that simple level. I guess that&#8217;s why Lisp winds up getting taught by example rather than by explanation, and why we are asked to use such peculiar words as &#8220;currying&#8221; and &#8220;closure,&#8221; words which seemed to drop on us from an unknown sky.</p>
<p>All this is very interesting, but is it useful? That question has been argued back and forth, using an infinite number of words, since the beginnings of Lisp.</p>
<p>There&#8217;s really no answer; nevertheless, it&#8217;s easy to observe that Lisp is hardly ever seen in a practical application. Some authorities would claim that&#8217;s only because the average programmer is stupid or ill-trained, and of course one is forced to consider that possibility, but after 50 years? By now the true brainiacs could have populated their own small country, with no mortals like us allowed, having three generations of pure functional thinkers! They would have been cranking out advanced-civilization software for decades, while we &#8220;normals&#8221; slowly returned to the life of our primate forebears, climbing up into the trees, taking it easy.</p>
<p>Yet nothing remotely similar has happened, despite valiant efforts. Nor did Lisp lead to huge new advances in &#8220;artificial intelligence&#8221; &#8212; sorry, that just didn&#8217;t work out.</p>
<p>Conclusion: I&#8217;m not rushing to switch to Lisp, or Ruby, but I still have high hopes for Javascript.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Helen</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-926</link>
		<dc:creator>Helen</dc:creator>
		<pubDate>Sun, 24 May 2009 10:40:35 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-926</guid>
		<description>That makes a lot of sense. In javascript they even have the same concept for objects as object literals. It&#039;s such a pity they made anonymous functions into such a big scary concept when really it&#039;s actually pretty simple when you get your head around the ideas that functions can be stored as variables. :)</description>
		<content:encoded><![CDATA[<p>That makes a lot of sense. In javascript they even have the same concept for objects as object literals. It&#8217;s such a pity they made anonymous functions into such a big scary concept when really it&#8217;s actually pretty simple when you get your head around the ideas that functions can be stored as variables. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralph</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-925</link>
		<dc:creator>Ralph</dc:creator>
		<pubDate>Sun, 24 May 2009 02:46:56 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-925</guid>
		<description>Excellent post! Subversively clear! Thank you, Helen.

During many years of reading about Lisp through a glass darkly, at some point I noticed that an &quot;anonymous function&quot; might instead be called a &quot;function literal.&quot; Just as we have numeric variables such as

    var mynumber;

so also we have numeric literals, for example, 123.45. The advantage of a numeric literal is that, instead of naming a number before using it, like this:

    var more = 123.45;          // named number
    much = enough + more;

we can write, instead:

    much = enough + 123.45;     // literal or &quot;anonymous&quot; number

Very concise! Likewise we can use a string variable:

    msg = &quot;Let this be a lesson&quot;;
    alert (msg);

or, more briefly, a string literal:

    alert (&quot;Let this be a lesson&quot;);

This is all rather clear and obvious when it comes to numbers and strings. It is just the same idea for &quot;lambda&quot; or &quot;anonymous&quot; functions instead of named functions, except that the concept of literalness is maybe not quite as obvious for a function.

I am convinced that the term &quot;function literal&quot; is more sensible, and comprehensible, than &quot;lambda expression.&quot; After all, lambda is only a modest Greek letter. We English speakers could be calling these things, say, &quot;z expressions,&quot; which doesn&#039;t sound quite so mysterious. Then we wouldn&#039;t even have to write &quot;lambda,&quot; because &quot;z&quot; is right there on the keyboard, unless you actually prefer &quot;zee.&quot;

Then again, in Lisp we are also supposed to talk about &quot;s-expressions&quot;...

Hmmm. I&#039;m starting to see a pattern here! Maybe those original beardy Lisp guys at MIT were shy about using, you know, whole words?

(Full disclosure: I look embarrassingly similar to those original, beardy MIT guys. Sigh.)</description>
		<content:encoded><![CDATA[<p>Excellent post! Subversively clear! Thank you, Helen.</p>
<p>During many years of reading about Lisp through a glass darkly, at some point I noticed that an &#8220;anonymous function&#8221; might instead be called a &#8220;function literal.&#8221; Just as we have numeric variables such as</p>
<p>    var mynumber;</p>
<p>so also we have numeric literals, for example, 123.45. The advantage of a numeric literal is that, instead of naming a number before using it, like this:</p>
<p>    var more = 123.45;          // named number<br />
    much = enough + more;</p>
<p>we can write, instead:</p>
<p>    much = enough + 123.45;     // literal or &#8220;anonymous&#8221; number</p>
<p>Very concise! Likewise we can use a string variable:</p>
<p>    msg = &#8220;Let this be a lesson&#8221;;<br />
    alert (msg);</p>
<p>or, more briefly, a string literal:</p>
<p>    alert (&#8221;Let this be a lesson&#8221;);</p>
<p>This is all rather clear and obvious when it comes to numbers and strings. It is just the same idea for &#8220;lambda&#8221; or &#8220;anonymous&#8221; functions instead of named functions, except that the concept of literalness is maybe not quite as obvious for a function.</p>
<p>I am convinced that the term &#8220;function literal&#8221; is more sensible, and comprehensible, than &#8220;lambda expression.&#8221; After all, lambda is only a modest Greek letter. We English speakers could be calling these things, say, &#8220;z expressions,&#8221; which doesn&#8217;t sound quite so mysterious. Then we wouldn&#8217;t even have to write &#8220;lambda,&#8221; because &#8220;z&#8221; is right there on the keyboard, unless you actually prefer &#8220;zee.&#8221;</p>
<p>Then again, in Lisp we are also supposed to talk about &#8220;s-expressions&#8221;&#8230;</p>
<p>Hmmm. I&#8217;m starting to see a pattern here! Maybe those original beardy Lisp guys at MIT were shy about using, you know, whole words?</p>
<p>(Full disclosure: I look embarrassingly similar to those original, beardy MIT guys. Sigh.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Helen</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-923</link>
		<dc:creator>Helen</dc:creator>
		<pubDate>Sat, 11 Apr 2009 11:36:49 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-923</guid>
		<description>@Marc yes, you&#039;re right. :) That code example makes a classic mistake with closures and loops. The closure will only be created for the last value of the loop, so every time the inner function gets called (the get_something or set_something function), the property value will be set to the last property value in the loop.

I actually talk about this in my article on closures (http://helephant.com/2008/10/javascript-closures/) so it&#039;s a little embarrassing to find the same mistake in one of my earlier examples. :)

The way to fix it is to create an inner function that will create a new closure for each different value in the loop.

I&#039;ve fixed up the example in the article so it works now (sorry it&#039;s taken me so long - life here has been crazy lately).</description>
		<content:encoded><![CDATA[<p>@Marc yes, you&#8217;re right. :) That code example makes a classic mistake with closures and loops. The closure will only be created for the last value of the loop, so every time the inner function gets called (the get_something or set_something function), the property value will be set to the last property value in the loop.</p>
<p>I actually talk about this in my article on closures (<a href="http://helephant.com/2008/10/javascript-closures/" rel="nofollow">http://helephant.com/2008/10/javascript-closures/</a>) so it&#8217;s a little embarrassing to find the same mistake in one of my earlier examples. :)</p>
<p>The way to fix it is to create an inner function that will create a new closure for each different value in the loop.</p>
<p>I&#8217;ve fixed up the example in the article so it works now (sorry it&#8217;s taken me so long &#8211; life here has been crazy lately).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Helen</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-922</link>
		<dc:creator>Helen</dc:creator>
		<pubDate>Thu, 12 Mar 2009 22:37:48 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-922</guid>
		<description>That&#039;s right. They&#039;re just a variable so you can overwrite the variable with something else. Javascript isn&#039;t strongly typed so the new value doesn&#039;t even have to be the same type as the old one.

There&#039;s a nice tool called JSLint that you can run over your code that will warn you if you try to do things like that. There&#039;s two versions, one from Douglas Crockford (http://www.jslint.com/) that&#039;s very strict and one that&#039;s built on top of mozilla&#039;s javascript engine (http://www.javascriptlint.com/) that you can run from the command line (or visual studio if you use it). In both you can configure what rules you want it to check for.</description>
		<content:encoded><![CDATA[<p>That&#8217;s right. They&#8217;re just a variable so you can overwrite the variable with something else. Javascript isn&#8217;t strongly typed so the new value doesn&#8217;t even have to be the same type as the old one.</p>
<p>There&#8217;s a nice tool called JSLint that you can run over your code that will warn you if you try to do things like that. There&#8217;s two versions, one from Douglas Crockford (<a href="http://www.jslint.com/" rel="nofollow">http://www.jslint.com/</a>) that&#8217;s very strict and one that&#8217;s built on top of mozilla&#8217;s javascript engine (<a href="http://www.javascriptlint.com/" rel="nofollow">http://www.javascriptlint.com/</a>) that you can run from the command line (or visual studio if you use it). In both you can configure what rules you want it to check for.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ted devito</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-921</link>
		<dc:creator>ted devito</dc:creator>
		<pubDate>Wed, 11 Mar 2009 17:48:59 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-921</guid>
		<description>so just doing some tests in firebug here, it looks like if function names are not protected.

//so this function...
function addFive (n) { return n+5; }

// can be redefined as a string
addFive = &#039;something else&#039;;

// and you would have no trace of the original
alert(addFive(3)); // &quot;TypeError: addFive is not a function&quot;</description>
		<content:encoded><![CDATA[<p>so just doing some tests in firebug here, it looks like if function names are not protected.</p>
<p>//so this function&#8230;<br />
function addFive (n) { return n+5; }</p>
<p>// can be redefined as a string<br />
addFive = &#8217;something else&#8217;;</p>
<p>// and you would have no trace of the original<br />
alert(addFive(3)); // &#8220;TypeError: addFive is not a function&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc Knaup</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-920</link>
		<dc:creator>Marc Knaup</dc:creator>
		<pubDate>Fri, 27 Feb 2009 16:58:09 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-920</guid>
		<description>The first example of &#039;Dynamic programming&#039; does not work - Chrome, Firefox and Internet Explorer always access the dataType property. Using outer iterator variables in functions does not seem to work.</description>
		<content:encoded><![CDATA[<p>The first example of &#8216;Dynamic programming&#8217; does not work &#8211; Chrome, Firefox and Internet Explorer always access the dataType property. Using outer iterator variables in functions does not seem to work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-919</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Sat, 14 Feb 2009 03:36:54 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-919</guid>
		<description>You put a lot of work into that tutorial, and I got a lot out of it. I&#039;ve been programming javascript since the late 1990&#039;s, yet scope and closures are still somewhat of a weird science to me.</description>
		<content:encoded><![CDATA[<p>You put a lot of work into that tutorial, and I got a lot out of it. I&#8217;ve been programming javascript since the late 1990&#8217;s, yet scope and closures are still somewhat of a weird science to me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ledaker</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-917</link>
		<dc:creator>ledaker</dc:creator>
		<pubDate>Wed, 31 Dec 1969 19:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-917</guid>
		<description>now, i am  seeing clearly in jquery jungle, thankx for all</description>
		<content:encoded><![CDATA[<p>now, i am  seeing clearly in jquery jungle, thankx for all</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sam</title>
		<link>http://helephant.com/2008/08/javascript-anonymous-functions/#comment-918</link>
		<dc:creator>sam</dc:creator>
		<pubDate>Wed, 31 Dec 1969 19:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://helephant.net/?p=418#comment-918</guid>
		<description>it&#039;s very clear. thanks</description>
		<content:encoded><![CDATA[<p>it&#8217;s very clear. thanks</p>
]]></content:encoded>
	</item>
</channel>
</rss>
