<?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 Idioms Every Webdev Should Grok</title>
	<atom:link href="http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/feed/" rel="self" type="application/rss+xml" />
	<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/</link>
	<description></description>
	<lastBuildDate>Thu, 10 May 2012 17:22:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: SmalltownJava</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-9710</link>
		<dc:creator>SmalltownJava</dc:creator>
		<pubDate>Wed, 03 May 2006 13:40:09 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-9710</guid>
		<description>Great discussiion!

A few notes regarding object access and windowing...

I&#039;m not familiar with using jsOrb as a library, but I do know that you can pass dynamic objects such as Datasets from the parent window to the child and vice versa using simple object reference. 

Additionally, you also use that methodology to notify child/parent asynchronously when processing large objects, script requests via XMLHttpRequest and dynamic script src execution requests.  That is very useful when building web applications and is fundamental to AJAX.

As a language, Javascript is very robust but only to the extent of thought put into its application.</description>
		<content:encoded><![CDATA[<p>Great discussiion!</p>
<p>A few notes regarding object access and windowing&#8230;</p>
<p>I&#8217;m not familiar with using jsOrb as a library, but I do know that you can pass dynamic objects such as Datasets from the parent window to the child and vice versa using simple object reference. </p>
<p>Additionally, you also use that methodology to notify child/parent asynchronously when processing large objects, script requests via XMLHttpRequest and dynamic script src execution requests.  That is very useful when building web applications and is fundamental to AJAX.</p>
<p>As a language, Javascript is very robust but only to the extent of thought put into its application.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ç¶²çµ¡æš´æ°‘ Jacky&#8217;s Blog &#187; 20060120ç¶²æ‘˜ - Web 3.0</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-497</link>
		<dc:creator>ç¶²çµ¡æš´æ°‘ Jacky&#8217;s Blog &#187; 20060120ç¶²æ‘˜ - Web 3.0</dc:creator>
		<pubDate>Sun, 12 Mar 2006 14:52:54 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-497</guid>
		<description></description>
		<content:encoded><![CDATA[<p>[...] JavaScript Idioms Every Webdev Should Grok ä¸€äº› javascript çš„ èªžè¨€é‡?é»ž [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Asfaw</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-278</link>
		<dc:creator>Asfaw</dc:creator>
		<pubDate>Thu, 02 Mar 2006 23:17:25 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-278</guid>
		<description>Hello Alex,

For a new user of JavaScript what would be a good start to grok the core concepts? A book/tutorial will be helpful.</description>
		<content:encoded><![CDATA[<p>Hello Alex,</p>
<p>For a new user of JavaScript what would be a good start to grok the core concepts? A book/tutorial will be helpful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: classical geek &#187; Blog Archive &#187; What you need to grok to grok Ajax</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-175</link>
		<dc:creator>classical geek &#187; Blog Archive &#187; What you need to grok to grok Ajax</dc:creator>
		<pubDate>Fri, 10 Feb 2006 20:48:22 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-175</guid>
		<description>[...] Dojo&#8217;s Alex Russel has a good post on the fundamentals of JavaScript here. There is a big difference between being able to get by in JavaScript and being able to really work with it. [...]</description>
		<content:encoded><![CDATA[<p>[...] Dojo&#8217;s Alex Russel has a good post on the fundamentals of JavaScript here. There is a big difference between being able to get by in JavaScript and being able to really work with it. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Dunck</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-162</link>
		<dc:creator>Jeremy Dunck</dc:creator>
		<pubDate>Fri, 27 Jan 2006 23:31:15 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-162</guid>
		<description>David is right, of course.  That&#039;s what I get for tossing off an example without coding it.  :(</description>
		<content:encoded><![CDATA[<p>David is right, of course.  That&#8217;s what I get for tossing off an example without coding it.  <img src='http://infrequently.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom Trenka</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-161</link>
		<dc:creator>Tom Trenka</dc:creator>
		<pubDate>Thu, 26 Jan 2006 23:23:59 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-161</guid>
		<description>One other thing about identifiers...ECMAScript v3 allows for escaped Unicode characters as part of the identifier (as long as it satisfies the other rules of an identifier).  For instance:

var business\u0032business=&quot;bar&quot;;

...is perfectly legal, even though you&#039;ll probably want to use &quot;2&quot;.</description>
		<content:encoded><![CDATA[<p>One other thing about identifiers&#8230;ECMAScript v3 allows for escaped Unicode characters as part of the identifier (as long as it satisfies the other rules of an identifier).  For instance:</p>
<p>var business\u0032business=&#8221;bar&#8221;;</p>
<p>&#8230;is perfectly legal, even though you&#8217;ll probably want to use &#8220;2&#8243;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Schontzler</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-160</link>
		<dc:creator>David Schontzler</dc:creator>
		<pubDate>Thu, 26 Jan 2006 23:07:55 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-160</guid>
		<description>In response to &lt;a href=&quot;#comment-132&quot; rel=&quot;nofollow&quot;&gt;Jeremy&#039;s comment about this&lt;/a&gt;, I&#039;d like to point out that his demo is incorrect. Calling y.gimme() in an event handler should work because you it will see the &#039;y&#039; and know to assign the proper &#039;this&#039;. If, on the other hand, you did:

x = y.gimme; x();

You&#039;ll get NaN because it doesn&#039;t know to setup the correct scope.</description>
		<content:encoded><![CDATA[<p>In response to <a href="#comment-132" rel="nofollow">Jeremy&#8217;s comment about this</a>, I&#8217;d like to point out that his demo is incorrect. Calling y.gimme() in an event handler should work because you it will see the &#8216;y&#8217; and know to assign the proper &#8216;this&#8217;. If, on the other hand, you did:</p>
<p>x = y.gimme; x();</p>
<p>You&#8217;ll get NaN because it doesn&#8217;t know to setup the correct scope.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dethe Elza</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-159</link>
		<dc:creator>Dethe Elza</dc:creator>
		<pubDate>Thu, 26 Jan 2006 22:39:30 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-159</guid>
		<description>Hi Alex,

Good points, and clearly made.

Sorry about missing the closing blockquote in my earlier response, I&#039;ve gotten used to comment previews, I guess.

--Dethe</description>
		<content:encoded><![CDATA[<p>Hi Alex,</p>
<p>Good points, and clearly made.</p>
<p>Sorry about missing the closing blockquote in my earlier response, I&#8217;ve gotten used to comment previews, I guess.</p>
<p>&#8211;Dethe</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alex</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-158</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Thu, 26 Jan 2006 22:19:57 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-158</guid>
		<description>Hi Dethe,

My statement about objects (variables whose .constructor property in some way descends from Object) was correct. Primitive string *values* are immutable in JS, but an object of type String may have new properties added to it at any time. Same with object of type Number. Their primitive values, however, are (as you point out) immutable.

Also, the hash deference is exactly equivalent. That there&#039;s no way to have a JS lexer handle an variable name with spaces in it in no way detracts from the equivalence, it just means that the dot operator has to follow the rules of thing that aren&#039;t string literals. Also, note that the way it was phrased, I said that anything you can do with the dot operator you can do with hash dereferences. I didn&#039;t say it worked the other way around.

Regards</description>
		<content:encoded><![CDATA[<p>Hi Dethe,</p>
<p>My statement about objects (variables whose .constructor property in some way descends from Object) was correct. Primitive string *values* are immutable in JS, but an object of type String may have new properties added to it at any time. Same with object of type Number. Their primitive values, however, are (as you point out) immutable.</p>
<p>Also, the hash deference is exactly equivalent. That there&#8217;s no way to have a JS lexer handle an variable name with spaces in it in no way detracts from the equivalence, it just means that the dot operator has to follow the rules of thing that aren&#8217;t string literals. Also, note that the way it was phrased, I said that anything you can do with the dot operator you can do with hash dereferences. I didn&#8217;t say it worked the other way around.</p>
<p>Regards</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dethe Elza</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-157</link>
		<dc:creator>Dethe Elza</dc:creator>
		<pubDate>Thu, 26 Jan 2006 22:04:23 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-157</guid>
		<description>Just a couple of clarifications:

&lt;blockquote&gt;
Every object is always mutable
&lt;/blockquote&gt;&lt;blockquote&gt;

Except numbers and strings and functions and perhaps a few other things.

&lt;/blockquote&gt;&lt;blockquote&gt;
The dot operator is equivalent to de-referencing by hash (e.g., foo.bar === foo[&quot;bar&quot;])
&lt;/blockquote&gt;

Not quite equivalent.  You can say foo[&#039;string with spaces&#039;] and foo[&#039;keyword&#039;] (where keyword is a Javascript keyword, like &quot;for.&quot;  Neither of these cases work using dot notation.

I don&#039;t think either of these points detract from what you&#039;re trying to say, but I&#039;ll make them in the interest of accuracy.</description>
		<content:encoded><![CDATA[<p>Just a couple of clarifications:</p>
<blockquote><p>
Every object is always mutable
</p></blockquote>
<blockquote>
<p>Except numbers and strings and functions and perhaps a few other things.</p>
</blockquote>
<blockquote><p>
The dot operator is equivalent to de-referencing by hash (e.g., foo.bar === foo["bar"])
</p></blockquote>
<p>Not quite equivalent.  You can say foo['string with spaces'] and foo['keyword'] (where keyword is a Javascript keyword, like &#8220;for.&#8221;  Neither of these cases work using dot notation.</p>
<p>I don&#8217;t think either of these points detract from what you&#8217;re trying to say, but I&#8217;ll make them in the interest of accuracy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe Grossberg</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-155</link>
		<dc:creator>Joe Grossberg</dc:creator>
		<pubDate>Thu, 26 Jan 2006 02:16:10 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-155</guid>
		<description>Thanks for the more thorough explanation. Now I have something to contemplate and play around with instead of just feeling like I&#039;m retarded. :)

Anyhow, I like &quot;grok&quot; ... &quot;understand&quot; seems insufficient. I guess my analogy would be that you can read all the automotive magazines you wand, but until you get behind the wheel of a car, you don&#039;t &quot;grok&quot; driving.</description>
		<content:encoded><![CDATA[<p>Thanks for the more thorough explanation. Now I have something to contemplate and play around with instead of just feeling like I&#8217;m retarded. <img src='http://infrequently.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyhow, I like &#8220;grok&#8221; &#8230; &#8220;understand&#8221; seems insufficient. I guess my analogy would be that you can read all the automotive magazines you wand, but until you get behind the wheel of a car, you don&#8217;t &#8220;grok&#8221; driving.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brad Koehn</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-153</link>
		<dc:creator>Brad Koehn</dc:creator>
		<pubDate>Wed, 25 Jan 2006 19:05:27 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-153</guid>
		<description>As an aside to the grokking, I got my code in to move graphs from one JS context to another. It was fairly easy (given that I had a marshaler handy), but the IPC (IWC?) was a bit complicated due to JS not having wait..notify support a la Java and other languages. 

I needed to write polling &quot;threads&quot; (interval functions) to handle the request/response nature of this type of activity. But it works fine. You call JsOrb.importGraph(context, obj, callback) and your callback is executed when the import is complete, and gets passed a reference to the imported graph. 

Yet another reason to hate IE: why not let me instantiate objects in another JS context?</description>
		<content:encoded><![CDATA[<p>As an aside to the grokking, I got my code in to move graphs from one JS context to another. It was fairly easy (given that I had a marshaler handy), but the IPC (IWC?) was a bit complicated due to JS not having wait..notify support a la Java and other languages. </p>
<p>I needed to write polling &#8220;threads&#8221; (interval functions) to handle the request/response nature of this type of activity. But it works fine. You call JsOrb.importGraph(context, obj, callback) and your callback is executed when the import is complete, and gets passed a reference to the imported graph. </p>
<p>Yet another reason to hate IE: why not let me instantiate objects in another JS context?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alex</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-151</link>
		<dc:creator>alex</dc:creator>
		<pubDate>Tue, 24 Jan 2006 17:42:35 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-151</guid>
		<description>Well, I&#039;m glad we&#039;re continuing the discussion of the salient points of the post and not the offhand title I slapped together as an afterthought.

*sigh*</description>
		<content:encoded><![CDATA[<p>Well, I&#8217;m glad we&#8217;re continuing the discussion of the salient points of the post and not the offhand title I slapped together as an afterthought.</p>
<p>*sigh*</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Geek</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-150</link>
		<dc:creator>Geek</dc:creator>
		<pubDate>Tue, 24 Jan 2006 17:39:06 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-150</guid>
		<description>Sure, we could say &quot;understand&quot; instead of &quot;grok,&quot; but grok implies a deeper, fully internalized understanding of a concept.  The English language has a very large (compared to most languages) vocabulary.  I, for one, prefer to use the word that best conveys my exact, subtle meaning.  There is no need to use imprecise Orwellian new-speak when there is a double-plus-good word like grok at your disposal.</description>
		<content:encoded><![CDATA[<p>Sure, we could say &#8220;understand&#8221; instead of &#8220;grok,&#8221; but grok implies a deeper, fully internalized understanding of a concept.  The English language has a very large (compared to most languages) vocabulary.  I, for one, prefer to use the word that best conveys my exact, subtle meaning.  There is no need to use imprecise Orwellian new-speak when there is a double-plus-good word like grok at your disposal.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom Trenka</title>
		<link>http://infrequently.org/2006/01/javascript-idioms-every-webdev-should-grok/comment-page-1/#comment-149</link>
		<dc:creator>Tom Trenka</dc:creator>
		<pubDate>Tue, 24 Jan 2006 00:58:48 +0000</pubDate>
		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=535#comment-149</guid>
		<description>grok.

grok grok grok.

grok grok.

grok.

(I love anonymous commenting)</description>
		<content:encoded><![CDATA[<p>grok.</p>
<p>grok grok grok.</p>
<p>grok grok.</p>
<p>grok.</p>
<p>(I love anonymous commenting)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

