JS Objects
by azhwani
JavaScript
//JS OBJETS ARE MUTABLE VARIABLES
/*
IN JS, WHEN WE ASSIGN AN OBJECT TO A VARIABLE, THE VARIABLE ACTAULLY HOLDS THE
REFERENCE THAT POINTS TO THE LOCATION OF THAT OBJECT IN MEMORY, ID DOEST
CONTAIN THE OBJECT ITSELF, THIS IS WHY OBJECTS ARE CALLED REFERENCE VARIABLES
JS PROVIDES 1 DATA TYPES:
++ PRIMITIVE DATA TYPE : number, string, boolean, null, undefined
++ REFERENCE DATA TYPE : object, array, function
*/
// WAYS TO CREATE OBJECTS
// LITERAL
var person1 = {
name:"AAA",
age:22,
print:function(){
alert(this.name+" : "+this.age)
}
}
person1.print();
//USING Object KEYWORD
var person2 = new Object();
person2.name="CCC";
person2.age = 25;
person2.print = function(){
alert(this.name+" : "+this.age)
}
person2.print();
// USING A FUNCTION DECLARATION (CONSTRUCTOR)
function Person (name,age){
this.name = name;
this.age = age;
this.print = function (){
alert(this.name+" : "+this.age)
}
}
var person3 = new Person("BBB",20);
person3.print();
// USING A FUNCTION EXPRESSION (ANONYMOUS)
var cperson = function (name,age){
this.name = name;
this.age = age;
this.print = function (){
alert(this.name+" : "+this.age)
}
}
var person4 = new cperson("EEEE",200);
person4.print();
// USING A FAT ARROW
var cperson2 = (name,age)=>{
this.name = name;
this.age = age;
this.print = function (){
alert(this.name+" : "+this.age)
}
}
var person5 = new cperson2("EEEE2",2000);
person5.print();
//JS OBJETS ARE COPIED BY REFERENCE : means every change on object's state will affect the other variable!
alert(person1.name);
var pperson = person1;
pperson.name="CCC";
alert(person1.name +" : "+pperson.name);
// JS OBJECTS ARE PASSED BY REFERENCE IN FUNCTION PARAMS : means the function can change the object's state but it cannot change its reference