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


Groups > comp.lang.javascript > #22613

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

From John Harris <niam@jghnorth.org.uk.invalid>
Newsgroups comp.lang.javascript
Subject Re: Why do I have to use the keyword this in my Employee example
Date 2014-01-14 09:56 +0000
Organization A noiseless patient Spider
Message-ID <id2ad9ddit2f9igva84q80incbugm7o1uo@4ax.com> (permalink)
References <larc8g$s3c$1@dont-email.me> <hdq2d9p4tjse2t0isfv010f2m9f0fn7gdl@4ax.com> <52d1792f$0$6555$9b4e6d93@newsspool4.arcor-online.net> <1590346.McO4MUtrrQ@PointedEars.de>

Show all headers | View raw


On Sat, 11 Jan 2014 20:07:20 +0100, Thomas 'PointedEars' Lahn
<PointedEars@web.de> wrote:

>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.

It's a pointless thing to do here though. Anything can use a set...()
call to put any values it likes in _firstName and _lastName, including
null or undefined. 

  John

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