---
title: Function Call
description: "## Method Reuse With the `call()` method, you can write a method that can be used on different objects. --- ## All Functions are Methods In JavaScript all functions are object methods. If a function is not a method of a JavaScript…"
url: "https://apprentice.mn/docs/function-call/"
updated: "2021-05-19"
category: Javascript
---

# Function Call

## Method Reuse

With the `call()` method, you can write a method that can be used on different objects.

---

## All Functions are Methods

In JavaScript all functions are object methods.

If a function is not a method of a JavaScript object, it is a function of the global object (see previous chapter).

The example below creates an object with 3 properties, firstName, lastName, fullName.

### Example

      `var person = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
person.fullName();   // Will return "John Doe"`

## The **this** Keyword

In a function definition, `this` refers to the “owner” of the function.

In the example above, `this` is the **person object** that “owns” the **fullName** function.

In other words, **this.firstName** means the **firstName** property of **this object**.

Read more about the `this` keyword at JS this Keyword.

---

          

---

## The JavaScript call() Method

The `call()` method is a predefined JavaScript method.

It can be used to invoke (call) a method with an owner object as an argument (parameter).

With `call()`, an object can use a method belonging to another object.

This example calls the **fullName** method of person, using it on **person1**:

### Example

      `var person = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
var person1 = {
  firstName:"John",
  lastName: "Doe"
}
var person2 = {
  firstName:"Mary",
  lastName: "Doe"
}
person.fullName.call(person1);  // Will return "John Doe"`

This example calls the **fullName** method of person, using it on **person2**:

### Example

      `var person = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}
var person1 = {
  firstName:"John",
  lastName: "Doe"
}
var person2 = {
  firstName:"Mary",
  lastName: "Doe"
}
person.fullName.call(person2);  // Will return "Mary Doe"`

## The call() Method with Arguments

The `call()` method can accept arguments:

### Example

      `var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"John",
  lastName: "Doe"
}
person.fullName.call(person1, "Oslo", "Norway");`        [https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fapprentice.mn%2Fdocs%2Ffunction-call%2F&linkname=Function%20Call](https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fapprentice.mn%2Fdocs%2Ffunction-call%2F&linkname=Function%20Call)[https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fapprentice.mn%2Fdocs%2Ffunction-call%2F&linkname=Function%20Call](https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Fapprentice.mn%2Fdocs%2Ffunction-call%2F&linkname=Function%20Call)[https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fapprentice.mn%2Fdocs%2Ffunction-call%2F&linkname=Function%20Call](https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fapprentice.mn%2Fdocs%2Ffunction-call%2F&linkname=Function%20Call)[https://www.addtoany.com/share](https://www.addtoany.com/share)
