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


Groups > comp.lang.javascript > #22573

Re: Why do I have to use the keyword this in my Employee example

Message-ID <1590346.McO4MUtrrQ@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Organization PointedEars Software (PES)
Date 2014-01-11 20:07 +0100
Subject Re: Why do I have to use the keyword this in my Employee example
Newsgroups comp.lang.javascript
References <larc8g$s3c$1@dont-email.me> <hdq2d9p4tjse2t0isfv010f2m9f0fn7gdl@4ax.com> <52d1792f$0$6555$9b4e6d93@newsspool4.arcor-online.net>

Show all headers | View raw


Christoph Michael Becker wrote:

> John Harris wrote:
>> On Sat, 11 Jan 2014 13:08:29 +0100, "Tony Johansson"
>> <johansson.andersson@telia.com> wrote:
>> 
>>> <script type="text/javascript">
>>>   function Employee(first, last)
>>>   {
>>>       var _firstName = first;
>>>       var _lastName = last;
>>>
>> Those are *local* variables, hidden inside the Employee function. They
>> won't exist any more once Employee has returned.
> 
> That's not quite right.  Actually, the variables are part of the
> environment of the methods of Employee, if Employee is invoked as
> constructor (what happens in function Foo()).

Not quite correct; this applies only to these methods of Employee 
_instances_ and other functions defined in the context of Employee().
Key word: closure.

The methods of Employee instances here are “privileged“ and the variables 
are “private” (terms coined by Douglas Crockford, IIRC), because only those 
methods can access those variables/pseudo-properties.  It is the closest 
equivalent to private/protected properties in class-based OOP.

-- 
PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

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


Thread

Why do I have to use the keyword this in my Employee example "Tony Johansson" <johansson.andersson@telia.com> - 2014-01-11 13:08 +0100
  Re: Why do I have to use the keyword this in my Employee example Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-01-11 16:37 +0100
  Re: Why do I have to use the keyword this in my Employee example John Harris <niam@jghnorth.org.uk.invalid> - 2014-01-11 15:58 +0000
    Re: Why do I have to use the keyword this in my Employee example Christoph Michael Becker <cmbecker69@arcor.de> - 2014-01-11 18:02 +0100
      Re: Why do I have to use the keyword this in my Employee example Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-01-11 20:07 +0100
        Re: Why do I have to use the keyword this in my Employee example Christoph Michael Becker <cmbecker69@arcor.de> - 2014-01-12 21:15 +0100
          Re: Why do I have to use the keyword this in my Employee example Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-01-12 21:51 +0100
        Re: Why do I have to use the keyword this in my Employee example John Harris <niam@jghnorth.org.uk.invalid> - 2014-01-14 09:56 +0000
  Re: Why do I have to use the keyword this in my Employee example JJ <duh@nah.meh> - 2014-01-11 23:10 +0700

csiph-web