Home Articles FAQs XREF Games Software Instant Books About Feedback Search Site-Map
irt.org logo

Feedback on: irt.org FAQ Knowledge Base Q1590

irt.org | About | Feedback | 4278 [ previous next ]

Feedback on:
irt.org FAQ Knowledge Base Q1590

Sent by
T.J. Crowder on November 16, 2002 at 06:54:12:

Worth:
Not worth reading

Length:
Just right

Technical:
Just right

Comments:
Hard to know what to put on the rating radio buttons in the feedback page. The problem is that the article is just plain wrong. In JavaScript, *all* method parameters are pass-by-value. What the author doesn't understand, or doesn't explain correctly, is what the "value" is when you pass an object reference. The value is the *reference* to the object; this is very, very different from passing a parameter by reference, even though the word "reference" is used in each case.

Here's how you can tell: If you assign a value to the variable that was passed in, does it change the value of *that variable* in the calling function? The example given does not, because it doesn't try to. This code:

function byReference(an_object) {
an_object.a_property *= an_object.a_property;
}

*Isn't* changing an_object, it's changing a_property, a very different thing. The proper test, just as with the a_variable test above it, would be:

function byReference(an_object) {
an_object = (some other object);
}

...which has no effect on the object reference in the calling code (it still refers to the same object, not the one assigned in byReference).

--
T.J. Crowder
tjirt@crowder.org
DO NOT ADD ME TO ANY MAILING LISTS AT ALL, NONE, NADA.
DO NOT SELL/GIVE/EXCHANGE MY EMAIL ADDRESS WITH ANYONE, AT ALL, FOR ANY REASON.




Provide feedback ...
AddThis Social Bookmark Button

Provide feedback ... AddThis Social Bookmark Button


Last Updated: 21st December 2007. Maintained by: Martin Webb
irt.org liability, trademark, document use, privacy statement and software licensing rules apply.
Copyright © 1996-2008 irt.org, All Rights Reserved.