What's the purpose of this ? ( 5. Who's in your bracket?)


#1

So my code worked like that :

var james = {
job: "programmer",
married: false
};

// set to the first property name of "james"
var aProperty = "job";

// print the value of the first property of "james"
// using the variable "aProperty"
console.log(james[aProperty]);

My question is: what's the purpose of this exercise ?

Plus, I managed to do it but felt a bit "lucky" cause I don't really understand the following :
when writing var aProperty = "job"; if I understood correctly, it gives the value of job (which is "programmer") to aProperty. Why is that ? Why doesn't it just make the variable aProperty equal to the string "job" ?
Consequently, if we would like to set the value of aProperty to the string "job" (and not the value "programmer") how could we do that ?

Not sure if that was very clear, don't hesitate to tell if it's not :slight_smile:


#2

@thibaudair,

james job married explained

- - - B a s i c s - - -

Each Object has one or more properties.
Each property consists of a property-key and it's associated value.

 var object1 = {
              name: "First"
              }

So object1 has 1 property with
a type property-key name
and it's associated value "FIRST" (which in this case is a "string-value")
OR

var myObj = {
         type: 'fancy',
         disposition: 'sunny'
        }

myObj has 2 properties seperated by a comma-,,
a property with property-key type and an associated-string-value 'fancy'
a disposition-property with property-key disposition and
..an associated-string-value 'sunny'.

= = = = = = = = = = = = = = = = = = = = = = = = = = = =

var james = {
    job: "programmer",
   married: false,
   sayJob: function() {
          // complete this method
          console.log("Hi, I work as a" + this.job);
    }
 };

Description of the james object.
The james object has 3 properties which are seperated by a comma-,

there is a job property with property-key job and it's associated string value 'programmer'
there is a married property with property-key married and it's associated boolean value false
there is a sayJob property with property-key sayJob and it's associated anonymous function VALUE
( they also would 'say', the james-object has the sayJob()-Method )

access via dot-notation

james.job ==> you will get the associated string VALUE of the job property-key, thus
you get the string VALUE 'programmer'

james.married ==> you will get the associated boolean VALUE false

james.sayJob ==> you will get the associated anonymous function VALUE
to call/execute this method you add a pair of parenthesis-( )
james.sayJob();

access via the square-bracket-notation

1 using the literal property-key

james["job"]
james["married"]
james["sayJob"]()

2 using the property-key by reference (=== via a variable )

var propertyKey1 = "job";
var propertyKey2 = "married";
var propertyKey3 = "sayJob";
james[propertyKey1] ==> you will get the associated string VALUE of the job property-key, thus
you get the string "programmer"

james[propertyKey2]
in this case you will get the boolean VALUE of the married property
being false

james[propertyKey3]();
would =display= "Hi, I work as a programmer"


#3

@leonhard.wettengmx.n ,
thanks for this explanation. Though I still don't understand the purpose of using that variable, but I guess I will know more about it in the next exercises :slight_smile: