/**
* to demonstrate syntaxes of objects
*/
//initialization of objects
//Initialization by assignment of values syntax : var object_name = {key1:value,key2:function(){},key3:["item1","item2"]}
var employee = {
employeeCode : "123",
Name : "Ina Hosen",
skills : ["Java","Javascript","Oracle"],
getInfo : function(){
return "{ "
+"Name : "+this.Name
+", employeeCode : " + this.employeeCode
+", skills :" +this.skills
+" }"}
}
console.log("employee Code ::"+employee.employeeCode);
console.log("employee Name : "+ employee.Name);
console.log("employee information :" + employee.getInfo());
//initialization by constructor var object_name = new Object()
var employee2 = new Object();
employee2.employeeCode = "345"; //assignment as a property
employee2["Name"] = "Mina Kose";//assignment as a key
employee2.printInfo = function(){return "[ Name :" + this.Name+", employeeCode" + this.employeeCode + " ]" };
console.log("print employee2 :" + employee2.printInfo());
console.log ("employee2 Name :" +employee2.Name);//print as property
console.log("employee2 employeeCode : "+employee2["employeeCode"]);//print as a key
//cloning of objects after using object constructor
//clone employee6 from employee
var employee6=new Object();
for (let key in employee){
employee6[key] = employee[key];
console.log(key +":"+employee[key]);
}
employee6.employeeCode = "789";
console.log("cloned employee6 : " + employee6.getInfo());
//initialization using the constructor function
function createEmployee(employeeCode, employeeName){
this.Name = employeeName;
this.employeeCode = employeeCode;
}
var employee3 = new createEmployee("456","Hina Korse");
employee3.skills = ["Java","Javascript", "MongoDB"];
employee3.printInfo = function(){return "Name :"+this.Name+", employeeCode : "+this.employeeCode+" , Skills :"+this.skills};
console.log("employee3 :" +employee3.printInfo());
//create objects using the Object.create() method
//Below is prototype object with default values, which can be used for object creation from it. Later on default values can be changed to any other values for newly created Objects
var employeePrototype = {
Name : "Name",
skills : ["Development"],
getInfo : function(){return "Name : "+this.Name+", skills : "+this.skills;}
}
var employee4 = Object.create(employeePrototype);
employee4.Name = "Tina Mors";
var employee5 = Object.create(employeePrototype);
employee5.Name = "Dina Torse"
console.log("employee4 :" + employee4.getInfo());
console.log("employee5 :" + employee5.getInfo());
//Create new Object using Object.assign(target,...sources) method, it will do clone
//this method can be used to copy properties of one object to another object. This another object is returned by function
var employee5 = Object.assign({},employee);
employee5.employeeCode = "678";
console.log("employee ::"+employee.getInfo());
console.log("employee5 ::"+employee5.getInfo());
//Copy employee4 into employee5
Object.assign(employee5,employee4);
console.log("copied employee5 :" + employee5.getInfo());
//Create Object by merging using Object.assign() method
var employee7Name = {Name : "John Khera"};
var employee7Code = {employeeCode : "111"};
var employee7Skills = {skills : ["Management","Marketing"]};
var employee7 =Object.assign({},employee7Name,employee7Code,employee7Skills);
console.log("printing employee7");
for(key in employee7){
console.log("employee 7 : "+key+" : "+employee7[key]);
}
//deleting properties of objects
var employee8 = {Name : "Siva kesar", employeeCode : "222",role : "Lead",skills : ["Java","Oracle","AWS Cloud"],address:{
City:'Pune',
PostalCode:1234
}};
delete employee8.role;
console.log("is role property exist :"+ ("role" in employee8));
console.log("is Name property exist :"+ ("Name" in employee8));
//destructuring objects
let {Name,employeeCode} = employee8;//extracting values into varibles matching property names
Name = "Mr." + Name;
console.log("Name:"+Name+", employeeCode:"+employeeCode);
let {address:{City, PostalCode}} = employee8;//extracting internal object
console.log("City :" +City);
let {Name:employee8FullName,employeeCode:employee8Code}=employee8;//extracting values into variables not matching property names
employee8FullName = "Mr."+employee8FullName;
console.log("employee8FullName:"+employee8FullName+", employee8Code:"+employee8Code);
let {skills,...personalInfo} = employee8;
console.log("skills : "+skills);
console.log("personalInfo : "+employee8.toString());
for(key in personalInfo) console.log("Personal Info : "+key +" : "+personalInfo[key]);
//to create object using dynamic property values during initialization
let suffixValue = 'Name'
let employee9 = {
['first'+suffixValue]:'Jin',
['last'+suffixValue]:'Bin',
employeeCode : '333'
}
console.log("FirstName of employee9 ::"+employee9.firstName);
//to create objects using variables assignment
let name = "Ibn Fatim";
let EmployeeCode = "444";
var employee10 = {
name,
EmployeeCode,
printInfo(){return "name ::"+this.name+", EmployeeCode ::"+this.EmployeeCode}
}
console.log("employee10 ::"+employee10.printInfo());
Output
employee Code ::123
employee Name : Ina Hosen
employee information :{ Name : Ina Hosen, employeeCode : 123, skills :Java,Javascript,Oracle }
print employee2 :[ Name :Mina Kose, employeeCode345 ]
employee2 Name :Mina Kose
employee2 employeeCode : 345
employeeCode:123
Name:Ina Hosen
skills:Java,Javascript,Oracle
getInfo:function(){
return "{ "
+"Name : "+this.Name
+", employeeCode : " + this.employeeCode
+", skills :" +this.skills
+" }"}
cloned employee6 : { Name : Ina Hosen, employeeCode : 789, skills :Java,Javascript,Oracle }
employee3 :Name :Hina Korse, employeeCode : 456 , Skills :Java,Javascript,MongoDB
employee4 :Name : Tina Mors, skills : Development
employee5 :Name : Dina Torse, skills : Development
employee ::{ Name : Ina Hosen, employeeCode : 123, skills :Java,Javascript,Oracle }
employee5 ::{ Name : Ina Hosen, employeeCode : 678, skills :Java,Javascript,Oracle }
copied employee5 :{ Name : Tina Mors, employeeCode : 678, skills :Java,Javascript,Oracle }
printing employee7
employee 7 : Name : John Khera
employee 7 : employeeCode : 111
employee 7 : skills : Management,Marketing
is role property exist :false
is Name property exist :true
Name:Mr.Siva kesar, employeeCode:222
City :Pune
employee8FullName:Mr.Siva kesar, employee8Code:222
skills : Java,Oracle,AWS Cloud
personalInfo : [object Object]
Personal Info : Name : Siva kesar
Personal Info : employeeCode : 222
Personal Info : address : [object Object]
FirstName of employee9 ::Jin
employee10 ::name ::Ibn Fatim, EmployeeCode ::444