I was asked yesterday by my friend : why Java Script supports OOP (Object Oriented Programming).
I told him, it is because Java Script can use inheritance and objects .
His next Question was : How so ?
So let us see how java script is related to OOP .
JS (java script) can use Objects and objects are very important because they have attributes which can be used
As in java , we can create objects with the new operator.
CREATING OBJECTS :
Inside script-tag :
kObject = new Object(); // creating objects with new operator
kObject.name = "kunal"; //using object attribute name
End of script-tag .
CONSTRUCTOR :
Java uses constructors . Similarly JS can also use constructors .
Inside script-tag :
fruit : function(name) // My function name is fruit, which can have a name and color as its attribute
{
this.name = name;
this.typeOfFruit = function();
{
console.log("This is an" +this.name); // console.log is my favorite way of printing a //statement, it is like println() of java and is used in firebug console. you can also use //alert() here .
}
}
fruit1 = new fruit("Apple");
fruit1.typeOfFruit(); // O/P: This is an Apple
End of script-tag .
Here, the method fruit is an object constructor with its own set of attributes and functions.
Objects for this object constructor can be written using the "new" keyword .
Here we did so and inserted the string parameter Apple and then called the function typeOfFruit(), which in turn gets passed on to the function fruit and we get the o/p : This is an Apple.
WHAT IS THIS ? :
Consider a class rectangle. It has its own attributes like height and width .
public class Rectangle
{
int height = 10;
int width = 5;
// Now here comes my constructor :
public Rectangle(int Height, int Width)
{
height = Height;
width = Width;
}
/* I can describe my constructor in this way as well :
public Rectangle(int height, int width)
{
this.height = height;
this.width = width ;
}
*/
}
I told him, it is because Java Script can use inheritance and objects .
His next Question was : How so ?
So let us see how java script is related to OOP .
JS (java script) can use Objects and objects are very important because they have attributes which can be used
As in java , we can create objects with the new operator.
CREATING OBJECTS :
Inside script-tag :
kObject = new Object(); // creating objects with new operator
kObject.name = "kunal"; //using object attribute name
End of script-tag .
CONSTRUCTOR :
Java uses constructors . Similarly JS can also use constructors .
Inside script-tag :
fruit : function(name) // My function name is fruit, which can have a name and color as its attribute
{
this.name = name;
this.typeOfFruit = function();
{
console.log("This is an" +this.name); // console.log is my favorite way of printing a //statement, it is like println() of java and is used in firebug console. you can also use //alert() here .
}
}
fruit1 = new fruit("Apple");
fruit1.typeOfFruit(); // O/P: This is an Apple
End of script-tag .
Here, the method fruit is an object constructor with its own set of attributes and functions.
Objects for this object constructor can be written using the "new" keyword .
Here we did so and inserted the string parameter Apple and then called the function typeOfFruit(), which in turn gets passed on to the function fruit and we get the o/p : This is an Apple.
WHAT IS THIS ? :
A lot of times I have been asked : why do we use this inside a constructor ?
Here let me take help of Java to explain this :
public class Rectangle
{
int height = 10;
int width = 5;
// Now here comes my constructor :
public Rectangle(int Height, int Width)
{
height = Height;
width = Width;
}
/* I can describe my constructor in this way as well :
public Rectangle(int height, int width)
{
this.height = height;
this.width = width ;
}
*/
}
You can see that I have used the this keyword in my second description of constructor Rectangle.
The first argument of my constructor is height.
Inside the constructor, a local copy of the same argument needs to be created.
Hence , we use the keyword this to point to the field : height .
If i would have used :
height = height ;
I would have got a warning that : this assignment does nothing.
Because we need to assign the variable : height in the constructor to the class attribute : height .
If we are to think of a real time example , consider that you have a very cool looking laptop. But your friend does not know that this laptop is yours . So what do you do ?
You tell him , in front of your dad that , this laptop is yours and he cannot have it .
Here your dad is the class, you are the constructor , who has the object laptop and you want to make sure that you assign it to yourself .
No comments:
Post a Comment