JavaScript is an Object
Oriented Programming (OOP) language. A programming language can be called object-oriented
if it provides four basic capabilities to developers:
·
Encapsulation: the capability to store
related information, whether data or
methods, together in an object.
·
Aggregation: the capability to store one object inside
another object.
·
Inheritance: the capability of a
class to rely upon another class (or number
of classes) for some of its properties and methods.
·
Polymorphism: the capability to write
one function or method that works in
a variety of different ways.
Objects are composed of
attributes. If an attribute contains a function, it is considered to be a
method of the object, otherwise the attribute is considered a property.
Object Properties
Object properties can
be any of the three primitive data types, or any of the abstract data types,
such as another object. Object properties are usually variables that are used
internally in the object's methods, but can also be globally visible variables
that are used throughout the page.
The syntax for adding a property to an object is:
objectName.objectProperty = propertyValue;
For example: The following code gets the document title using the "title" property of the document
object.
var str = document.title;
Object Methods
Methods are the
functions that let the object do something or let something be done to it.
There is a small difference between a function and a method – at a function is
a standalone unit of statements and a method is attached to an object and can
be referenced by the this keyword.
Methods are useful for
everything from displaying the contents of the object to the screen to
performing complex mathematical operations on a group of local properties and
parameters.
For example: Following is a simple example to show how to use the write() method of document object to
write any content on the document.
document.write ("This is test");
User-Defined Objects
All user-defined
objects and built-in objects are descendants of an object called Object.
The new Operator
The new operator is used to create an
instance of an object. To create an object, the new operator is followed by the constructor method.
In the following
example, the constructor methods are Object(), Array(), and Date(). These
constructors are built-in JavaScript functions.
var employee = new Object();
var books = new Array("C++",
"Perl", "Java");
var day = new Date("August 15,
1947");
The Object ( ) Constructor
A constructor is a
function that creates and initializes an object. JavaScript provides a special
constructor function called Object()
to build the object. The return value of the Object() constructor is assigned to a variable.
The variable contains a
reference to the new object. The properties assigned to the object are not
variables and are not defined with the var
keyword.
Example 1
Try the following example; it demonstrates how to create an Object.
<html>
<head>
<title>User-defined
objects</title>
<script
type="text/javascript">
var book = new Object(); // Create
the object book.subject = "Perl"; // Assign properties to the object
book.author = "Mohtashim";
</script>
</head>
<body>
<script
type="text/javascript">
document.write("Book name is : " +
book.subject + "<br>");
document.write("Book author is : "
+ book.author + "<br>");
</script>
</body>
</html>
Output
Book name is : Perl
Book author is : Mohtashim
Example 2
This example
demonstrates how to create an object with a User-Defined Function. Here this keyword is used to refer to the
object that has been passed to a function.
<html>
<head>
<title>User-defined
objects</title>
<script
type="text/javascript">
function book(title, author){
this.title = title;
this.author = author;
}
</script>
</head>
<body>
<script
type="text/javascript">
var myBook = new
book("Perl", "Mohtashim"); document.write("Book title
is : " + myBook.title + "<br>"); document.write("Book
author is : " + myBook.author + "<br>");
</script>
</body>
</html>
Output
Book title is : Perl
Book author is : Mohtashim
Defining Methods for an
Object
The previous examples
demonstrate how the constructor creates the object and assigns properties. But
we need to complete the definition of an object by assigning methods to it.
Example
Try the following example; it shows how to add a function along with
an object.
<html>
<head>
<title>User-defined
objects</title>
<script
type="text/javascript">
// Define a function which will work as
a method function addPrice(amount){
this.price = amount;
}
function book(title, author){
this.title = title;
this.author = author;
this.addPrice = addPrice; // Assign that
method as property.
}
</script>
</head>
<body>
<script
type="text/javascript">
var myBook = new
book("Perl", "Mohtashim"); myBook.addPrice(100);
document.write("Book title is : " +
myBook.title + "<br>");
document.write("Book author is : "
+ myBook.author + "<br>");
document.write("Book price is : " +
myBook.price + "<br>");
</script>
</body>
</html>
Output
Book title is : Perl
Book author is : Mohtashim
Book price is : 100
The ‘with’ Keyword
The ‘with’ keyword is used as a kind of
shorthand for referencing an object's properties or methods.
The object specified as
an argument to with becomes the
default object for the duration of the block that follows. The properties and
methods for the object can be used without naming the object.
Syntax
The syntax for with object is as follows:
with (object){
properties used without the object name and
dot
}
Example
Try the following example.
<html>
<head>
<title>User-defined
objects</title>
<script
type="text/javascript">
// Define a function which will work as
a method function addPrice(amount){
with(this){ price =
amount;
}
}
function book(title, author){
this.title = title;
this.author = author;
this.price = 0;
this.addPrice = addPrice; // Assign that
method as property.
}
</script>
</head>
<body>
<script
type="text/javascript">
var myBook = new
book("Perl", "Mohtashim"); myBook.addPrice(100);
document.write("Book title is : " +
myBook.title + "<br>");
document.write("Book author is : "
+ myBook.author + "<br>");
document.write("Book price is : " +
myBook.price + "<br>");
</script>
</body>
</html>
Output
Book title is : Perl
Book author is : Mohtashim
Book price is : 100
0 comments:
Post a Comment