Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #13013
| From | BGB <cr88192@hotmail.com> |
|---|---|
| Newsgroups | comp.lang.javascript |
| Subject | Re: call by reference |
| Date | 2012-03-23 13:03 -0700 |
| Organization | albasani.net |
| Message-ID | <jkil11$8m4$1@news.albasani.net> (permalink) |
| References | <jkhrtr$i06$1@news.albasani.net> |
On 3/23/2012 5:56 AM, Andreas Bergmaier wrote:
> I know, JavaScript does not support call-by-reference. Every function
> invocation does call-by-value, even if that value is a reference value
> to an array-/function-/plain-Object, and not a primitive.
>
> Yet, there is a javascript thing that stores values by reference: the
> arguments object.
>
> > function kill(a) { for (var i=0;i<a.length;i++) a[i]=false; }
> > function x(a,b,c) { kill(arguments); return[a,b,c] };
> > x(true,true,true)
> [false, false, false]
>
> I did not assign to a, b or c. Can this be termed "call-with-references"
> or something?
>
one option: "call by value" with "reference types".
although not proper JS, my own ES-variant (used mostly for game
scripting) partly adds references as a language extension:
foo(&x, &y);
which may be handled at the target either as:
function foo(rx, ry)
{ *rx=3; *ry=4; }
or, as:
function foo(&x, &y)
{ x=3; y=4; }
which is basically syntax sugar for the above.
functionally "*rx=3;" is more-or-less equivalent to "rx[0]=3;".
note: although vaguely resembling them, these are not to be confused
with C-style pointers (functionally, the reference is "boxed", and
deferred assignment is made into this box).
as-is, the "&x" notation at the call-site is mandatory, given that the
compiler doesn't necessarily know the signature of the call target
(otherwise, things wont work correctly).
or such...
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
call by reference Andreas Bergmaier <andber93@web.de> - 2012-03-23 13:56 +0100
Re: call by reference Scott Sauyet <scott.sauyet@gmail.com> - 2012-03-23 07:10 -0700
Re: call by reference "Evertjan." <exjxw.hannivoort@interxnl.net> - 2012-03-23 15:23 +0000
Re: call by reference Scott Sauyet <scott.sauyet@gmail.com> - 2012-03-23 09:28 -0700
Re: call by reference "Evertjan." <exjxw.hannivoort@interxnl.net> - 2012-03-23 19:41 +0000
Re: call by reference Gene Wirchenko <genew@ocis.net> - 2012-03-23 13:43 -0700
Re: call by reference "Evertjan." <exjxw.hannivoort@interxnl.net> - 2012-03-23 21:18 +0000
Re: call by reference BGB <cr88192@hotmail.com> - 2012-03-23 15:23 -0700
Re: call by reference Gene Wirchenko <genew@ocis.net> - 2012-03-23 15:27 -0700
Re: call by reference "Evertjan." <exjxw.hannivoort@interxnl.net> - 2012-03-24 00:19 +0000
Re: call by reference Norman Peelman <npeelmandog@cfl.rr.com> - 2012-03-28 06:43 -0400
Re: call by reference "Evertjan." <exjxw.hannivoort@interxnl.net> - 2012-03-28 14:50 +0000
Re: call by reference Aatu Koskensilta <aatu.koskensilta@uta.fi> - 2012-03-28 18:06 +0300
Re: call by reference "Evertjan." <exjxw.hannivoort@interxnl.net> - 2012-03-28 15:57 +0000
Re: call by reference Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2012-03-28 23:22 +0200
Re: call by reference "Evertjan." <exjxw.hannivoort@interxnl.net> - 2012-03-29 07:18 +0000
Re: call by reference Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2012-03-29 13:34 +0200
Re: call by reference David Mark <dmark.cinsoft@gmail.com> - 2012-03-29 18:30 -0700
Re: call by reference Eric Bednarz <bednarz@fahr-zur-hoelle.org> - 2012-04-03 00:09 +0200
Re: call by reference David Mark <dmark.cinsoft@gmail.com> - 2012-04-02 17:43 -0700
Re: call by reference Robert Baer <robertbaer@localnet.com> - 2012-03-30 00:49 -0800
Re: call by reference Scott Sauyet <scott.sauyet@gmail.com> - 2012-03-28 13:33 -0700
Re: call by reference John G Harris <john@nospam.demon.co.uk> - 2012-03-24 11:34 +0000
Re: call by reference Aatu Koskensilta <aatu.koskensilta@uta.fi> - 2012-03-26 22:46 +0300
Re: call by reference Gene Wirchenko <genew@ocis.net> - 2012-03-26 18:38 -0700
Re: call by reference Aatu Koskensilta <aatu.koskensilta@uta.fi> - 2012-03-27 05:13 +0300
Re: call by reference Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-03-27 18:31 +0200
Re: call by reference Aatu Koskensilta <aatu.koskensilta@uta.fi> - 2012-03-27 21:31 +0300
Re: call by reference Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-03-27 21:03 +0200
Re: call by reference "Ross A. Finlayson" <ross.finlayson@gmail.com> - 2012-04-10 22:03 -0700
Re: call by reference Scott Sauyet <scott.sauyet@gmail.com> - 2012-03-25 07:34 -0700
Re: call by reference "Evertjan." <exjxw.hannivoort@interxnl.net> - 2012-03-25 15:53 +0000
Re: call by reference Asen Bozhilov <asen.bozhilov@gmail.com> - 2012-03-27 05:15 -0700
Re: call by reference BGB <cr88192@hotmail.com> - 2012-03-23 13:03 -0700
Re: call by reference Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-03-23 23:02 +0100
Re: call by reference John G Harris <john@nospam.demon.co.uk> - 2012-03-24 11:40 +0000
csiph-web