Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #16229

Re: Who's eaten my apple and why?

Message-ID <1574086.9R1ReOYYeM@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Organization PointedEars Software (PES)
Date 2012-09-28 15:39 +0200
Subject Re: Who's eaten my apple and why?
Newsgroups comp.lang.javascript
References (4 earlier) <kde7681jjln1ffu43grf11thd274pqkokf@4ax.com> <k41bjn$bdg$1@speranza.aioe.org> <pmv868t6raj29735oalaj0imefgpsj8uh1@4ax.com> <k421h5$7ka$1@speranza.aioe.org> <k42a3d$3ni$1@news.albasani.net>
Followup-To comp.lang.javascript

Followups directed to: comp.lang.javascript

Show all headers | View raw


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

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Who's eaten my apple and why? justaguy <lichunshen84@gmail.com> - 2012-09-26 14:43 -0700
  Re: Who's eaten my apple and why? Christoph Becker <cmbecker69@gmx.de> - 2012-09-27 01:35 +0200
    Re: Who's eaten my apple and why? justaguy <lichunshen84@gmail.com> - 2012-09-26 17:46 -0700
      Re: Who's eaten my apple and why? Stefan Weiss <krewecherl@gmail.com> - 2012-09-27 03:51 +0200
        Re: Who's eaten my apple and why? justaguy <lichunshen84@gmail.com> - 2012-09-26 19:44 -0700
          Re: Who's eaten my apple and why? Stefan Weiss <krewecherl@gmail.com> - 2012-09-27 22:06 +0200
    Re: Who's eaten my apple and why? Gene Wirchenko <genew@ocis.net> - 2012-09-26 17:59 -0700
      Re: Who's eaten my apple and why? Stefan Weiss <krewecherl@gmail.com> - 2012-09-27 04:16 +0200
        Re: Who's eaten my apple and why? Gene Wirchenko <genew@ocis.net> - 2012-09-26 19:38 -0700
          Re: Who's eaten my apple and why? Stefan Weiss <krewecherl@gmail.com> - 2012-09-27 05:44 +0200
            Re: Who's eaten my apple and why? Gene Wirchenko <genew@ocis.net> - 2012-09-27 09:28 -0700
              Re: Who's eaten my apple and why? Tim Streater <timstreater@greenbee.net> - 2012-09-27 17:40 +0100
                Re: Who's eaten my apple and why? Gene Wirchenko <genew@ocis.net> - 2012-09-27 16:24 -0700
              Re: Who's eaten my apple and why? Dr J R Stockton <reply1239@merlyn.demon.co.uk.invalid> - 2012-09-29 20:47 +0100
          Re: Who's eaten my apple and why? Christoph Becker <cmbecker69@gmx.de> - 2012-09-27 13:00 +0200
            Re: Who's eaten my apple and why? Gene Wirchenko <genew@ocis.net> - 2012-09-27 09:34 -0700
              Re: Who's eaten my apple and why? Christoph Becker <cmbecker69@gmx.de> - 2012-09-27 19:14 +0200
                Re: Who's eaten my apple and why? Stefan Weiss <krewecherl@gmail.com> - 2012-09-27 21:40 +0200
                Re: Who's eaten my apple and why? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-09-28 15:39 +0200
                Re: Who's eaten my apple and why? Gene Wirchenko <genew@ocis.net> - 2012-09-27 16:25 -0700
      Re: Who's eaten my apple and why? Tim Streater <timstreater@greenbee.net> - 2012-09-27 08:52 +0100
  Re: Who's eaten my apple and why? Gene Wirchenko <genew@ocis.net> - 2012-09-26 17:50 -0700

csiph-web