Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #16229
| 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
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
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