JavaScript Objects

JavaScript Objects #

General notes on objects, including properties and methods (see methods for details on specific methods).

Variables #

Objects can be assigned to variables.

Use {} for object literals.

let someVar = {};

Key-Value #

Keys without spaces or special characters can be presented without quotes.

Value can be anything, including functions.

let someKV = {
    name: "Bob",
    age: 20
};

console #

console is in fact a global JavaScript object. Correspondingly, .log() is a method of that object.

console.log()

Access #

Dot notation #

To access properties, use form <object>.<key>.

For example:

someKV.name;

Bracket notation #

Another way to access properties: bracket notation, a la [].

someKV['name'];

Bracket notation must be used if the key name is not some valid identifier name, such as if it starts with a number or special character.

Bracket notation can also be used to extract a property using a variable rather than a string.

let someKV = {
    name: "Bob",
    age: 20
};

let targetKey = 'name';

console.log(someKV[targetKey]);

Properties #

Assignment #

Use either dot or bracket notation and assignment operator = to perform an assignment.

Assignment can add something new or replace something existing.

let someKV = {
    name: "Bob",
    age: 20
};

someKV.name = 'George'; //replace
someKV.weight = '200'; //adds a new property

Delete #

Properties can be deleted with delete operator.

delete someKV.weight;

Methods #

Functions tied to objects.

Usually follows form: <thing>.<method>()

Different data types have different methods (strings have sting methods, numerics have numeric methods, etc.)

console.log('yo'.toUpperCase())

Creating #

Methods can be added to objects with key-value pairs. Key is the method name, the value is an anonymous function.

let someObj = {
    someMethod: function() {
        ...;
    }
};

With ES6 syntax, colon and function can be omitted:

let someObj = {
    someMethod () {
        ...;
    }
};

Invoke with someObj.someMethod().

Nesting #

Objects can be nested (object in an object in an object…)

let someObj = {
    firstObj: {
        propA: 1,
        propB: 'Z'
    },
    secondObj: {
        propC: 4,
        propD: 'Y'
    }
}

Operators can be chained to extract nested properties or methods:

someObj[FirstObj].propA;