METHOD:
Function::apply
Function.apply(thisArg[, argArray])
The apply method allows you to call a function and specify
what the keyword this will refer to within the context of that
function. The thisArg argument should be an object. Within the context
of the function being called, this will refer to thisArg. The
second argument to the apply method is an array. The elements
of this array will be passed as the arguments to the function being
called. The argArray parameter can be either an array literal or the
deprecated arguments property of
a function.
The apply method can be used to simulate object inheritance
as in the following example. We first define the constructor for an
object called Car which has three properties. Then the constructor for
a second object called RentalCar is defined. RentalCar will inherit
the properties of Car and add one additional property of its own - carNo.
The RentalCar constructor uses the apply method to call the Car
constructor, passing itself as thisArg. Therefore, inside the Car function,
the keyword this actually refers to the RentalCar object being
constructed, and not a new Car object. By this means,the RentalCar object
inherits the properties from the Car object.
Code:
function Car(make, model, year)
{
this.make = make;
this.model = model;
this.year = year;
}
function RentalCar(carNo, make, model, year)
{
this.carNo = carNo;
Car.apply(this, new Array(make, model, year))
}
myCar = new RentalCar(2134,"Ford","Mustang",1998)
document.write("Your car is a " + myCar.year + " " +
myCar.make + " " + myCar.model + ".")
Output:
Your car is a 1998 Ford Mustang.
NOTE: The apply method is very similar to the call
method and only differs in that, up until now, you could use the deprecated
arguments array as one of its parameters.
|