Object
Getters:
const employee = {_name: 'Tom',_yearOfExp: 20,_dept: 'CS',get yearOfExp(){if((typeof this._yearOfExp) === 'number'){return `employee current year of experience is ${this._yearOfExp}`;} else {return 'Error: cannot retrieve value';}}};console.log(employee.yearOfExp);
output:
"employee current year of experience is 20"
Setters:
const employee = {_name: 'Ambreen',_yearOfExp: 20,_dept: 'CS',set yearOfExp(num){if((typeof num) === 'number'){this._yearOfExp = num;return `employee current year of experience is ${this._yearOfExp}`;} else {return 'Error: cannot set value';}}};employee.yearOfExp = 25console.log(employee._yearOfExp);
output:
25
Factory Functions:
const empFactory = (name, department) => {return {name: name,department: department,task() {console.log('Manufacturing');}}};const emp1 = empFactory('John', 'Finance');emp1.task();
output:
"Manufacturing"
We can re-write above code by using the destructuring technique that was introduced in ES6 and is also known as property value shorthand:
const empFactory = (name, department) => {return {name,department,task() {console.log('Manufacturing');}}};const emp1 = empFactory('John', 'Finance');emp1.task();
Destructured Assignment:
It allows extracting data from arrays, objects, maps and sets into their own variables.
Example 1: Object Destructuring
const employee = {first: 'Ambreen',last: 'Khan',country: 'Canada',city: 'Toronto',twitter: '@ambysan'};//Getting data in old-fashoined way:// const first = person.first;// const last = person.last;//This data can be destructured as below; Here curly brackets show new destructuring syntaxconst {first, last} = employee;console.log(first); // Ambreenconsole.log(last); // Khan
Example 2: Object Destructuring
const instructor = {name: "Ambreen",favColor: "Blue"}function displayInfo({name,favColor}){return [name, favColor];}console.log(displayInfo(instructor));
Output:
[ 'Ambreen', 'Blue' ]
Example 3: Array Destructuring
const arr = [1,2,3];const [a,b,c] = arrconsole.log(a);console.log(b);console.log(c);
output:
123
Example 4: Array Destructuring
const arr1 = [12,13];function swap([a,b]){return [a,b] = [b,a];}console.log(swap(arr));
Output:
[13, 12]
Built-in Object Methods:
Object.keys()
const employee = {first: 'Ambreen',last: 'Khan',country: 'Canada',city: 'Toronto',twitter: '@ambysan'};const employeeKeys = Object.keys(employee);console.log(employeeKeys);
output:
["first", "last", "country", "city", "twitter"]
Object.entries()
const employee = {first: 'Ambreen',last: 'Khan',country: 'Canada',city: 'Toronto',twitter: '@ambysan'};const objEntries = Object.entries(employee);console.log(objEntries);
output:
[["first", "Ambreen"], ["last", "Khan"], ["country", "Canada"], ["city", "Toronto"], ["twitter", "@ambysan"]]
Object.assign()
const employee = {first: 'Ambreen',last: 'Khan',country: 'Canada',city: 'Toronto',twitter: '@ambysan'};const techEmployee = Object.assign({skill1: 'JavaScript', skill2: 'Node.JS'}, employee);console.log(techEmployee);
output:
[object Object] {city: "Toronto",country: "Canada",first: "Ambreen",last: "Khan",skill1: "JavaScript",skill2: "Node.JS",twitter: "@ambysan"}