// To make an object literal:
const dog = {
name: "Rusty",
breed: "unknown",
isAlive: false,
age: 7
}
// All keys will be turned into strings!
// To retrieve a value:
dog.age; //7
dog["age"]; //7
//updating values
dog.breed = "mutt";
dog["age"] = 8;
1) Object Literal
const obj = {
name: "Ram",
age: "20"
}
2) Constructor Function or ES6- Class
const a = new Person("Ram", "25") //given Person is an existing function or class
3) Object.create method
const ram = Object.create(Person); //given person is an existing object
/*
An object is made of key value pairs. Keys can be strings
(which don't require quotes), array with a string, or symbols. Values can be arrays,
objects, numbers etc
*/
let testSymbol = Symbol('item number 3')
const obj = {
item1: 1,
"item number 2": 2,
testSymbol: 3,
['a']: 4
}
// Another way of creating an object:
const obj = new Object();
obj.name = 'John'
// To access values, you can use dot notation or bracket notation.
// Both do the same thing, bracket notion is useful for multispace keys,
// keys with dashes, or accessing values using variables
> obj.item1
> obj['item number 2']
> let b = 'item1'
obj[b]
// The following would NOT work and would return undefined:
obj.b
// Checking exsistence of keys in object:
obj.toString ----- checks values of object and whatever object inherits from
> returns true
obj.hasOwnProperty('toString') ----- checks values of object only. Do this instead of checking like: (obj.name !== undefined)
> returns false
// Short hand key assignment:
const name = 'John'
const obj2 = {
// this is short hand that automatically sets the key to be 'name',
// and it's value to be 'John'
name,
}
// Constructor objects:
function Obj(name, age){
this.name = name
this.age = age
}
const person = new Obj('john', 1)
// adding functions, couple ways:
const obj = {
name: 'Mike',
number: 4421,
sayHi: () => console.log('hi'),
sayBye() {
console.log('say bye')
},
// getter function to get values from object. Has different usecases, but the same as doing obj.number
get getNumber(){
return this.number
}
// setter function to set values in object. Has different usecases, but the same as doing obj.number = 152
set setNumber(num){
this.number = num
}
}
obj.sayHi()
obj.sayBye()
obj.getNumber //Note how it's being accessed like a standard property, and not a function
obj.setNumber //Note how it's being accessed like a standard property, and not a function
const person = {
name: 'Nick'
};
person.name = 'John' // this will work ! person variable is not completely reassigned, but mutated
console.log(person.name) // "John"
person = "Sandra" // raises an error, because reassignment is not allowed with const declared variables
const person = {
firstName: 'John',
age: 30,
greet() {//method
console.log('Hi, I am ' + this.name);
},
age(){//method
console.log('I am ' + this.age + ' years old');
}
}
person.lastName = 'Doe';//add property to object
console.log(person.lastName);// output: Doe
// Calling a method
person.greet();// output: Hi, I am Doe
person.age();// output: I am 30 years old