Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Who's eaten my apple and why?
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Thomas 'PointedEars' Lahn  
View profile  
 More options Sep 28 2012, 9:39 am
Newsgroups: comp.lang.javascript
Followup-To: comp.lang.javascript
From: Thomas 'PointedEars' Lahn <PointedE...@web.de>
Date: Fri, 28 Sep 2012 15:39:17 +0200
Local: Fri, Sep 28 2012 9:39 am
Subject: Re: Who's eaten my apple and why?

Stefan Weiss wrote:
> I was talking about reference types with a co-worker a couple of months
> ago, and we found an analogy that seemed to help:

> One can imagine variables as small envelopes, just large enough to hold
> a single piece of paper. Some things can fit on this piece of paper
> entirely, like numbers and strings, others are too large, like objects.

> When you create an object, it's like handing your cloak (the object) to
> a checkroom attendant. He will put the cloak on a rack and hand you a
> paper receipt to identify it later. You put this piece of paper in your
> envelope: your variable now contains a reference to an object.

> Now you can use this receipt to access your cloak anytime. You can copy
> the receipt to another envelope and it will still work. You can show it
> to other attendants (methods), who will copy it from you and can now
> also access your cloak.

> When you empty your envelope, you lose the reference. The cloak still
> exists, but you won't be able to find it again. After a while, the
> checkroom attendant may (or may not) notice that this cloak has been
> hanging around for weeks, and will throw it away (objects with a
> reference count of zero may be garbage collected).

> The analogy is getting a little stretched now, but bear with me...

> When you write options.add(o), that's like showing your receipt to an
> attendant and saying "take this cloak from wherever it is and hang it on
> the tree outside" (the DOM tree). You can do that any number of times,
> but in the end your cloak will be hanging on the tree only once. If you
> put something else in your envelope, like a blank piece of paper (o =
> null), the cloak on the tree is unaffected by this. You just don't have
> an easy way to find it again.

This is arguably the best analogy for this mechanism that I have read so
far.  And it is funny, too.

+1

PointedEars
--
Anyone who slaps a 'this page is best viewed with Browser X' label on
a Web page appears to be yearning for the bad old days, before the Web,
when you had very little chance of reading a document written on another
computer, another word processor, or another network. -- Tim Berners-Lee


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.