This site is mobile accessible. Press the "Tap Here" button to use a different font-size.


Smartphone icons created by Freepik - Flaticon

  • 11.5 JS Function Apply

    Method Reuse

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

    The JavaScript apply() Method

    • The apply() method is similar to the call() method (previous chapter).
    • In this example the fullName method of person is applied on person1:
    Example 1: JS Functions - The JavaScript apply() Method
    var person = {
      fullName: function() {
        return this.firstName + " " + this.lastName;
      }
    }
    var person1 = {
      firstName: "Mary",
      lastName: "Doe"
    }
    person.fullName.apply(person1);  // Will return "Mary Doe"

    The Difference Between call() and apply()

    • The difference is:
    • The call() method takes arguments separately.
    • The apply() method takes arguments as an array.
    • The apply() method is very handy if you want to use an array instead of an argument list.

    The apply() Method with Arguments

    The apply() method accepts arguments in an array:

    Example 2: JS Functions - The apply() Method with Arguments
    var person = {
      fullName: function(city, country) {
        return this.firstName + " " + this.lastName + "," + city + "," + country;
      }
    }
    var person1 = {
      firstName:"John",
      lastName: "Doe"
    }
    person.fullName.apply(person1, ["Oslo", "Norway"]);

    Compared with the call() method:

    Example 3: JS Functions - The call() Method with Arguments
    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");

    Simulate a Max Method on Arrays

    You can find the largest number (in a list of numbers) using the Math.max() method:

    Example 4: JS Math.max() part 1
    Math.max(1,2,3);  // Will return 3

    Since JavaScript arrays do not have a max() method, you can apply the Math.max() method instead.

    Example 5: JS Math.max() part 2
    Math.max.apply(null, [1,2,3]); // Will also return 3
    • The first argument (null) does not matter. It is not used in this example.
    • These examples will give the same result:
    Example 6: JS Math.max() part 3
    Math.max.apply(Math, [1,2,3]); // Will also return 3
    Example 7: JS Math.max() part 4
    Math.max.apply(" ", [1,2,3]); // Will also return 3
    Example 8: JS Math.max() part 5
    Math.max.apply(0, [1,2,3]); // Will also return 3

    JavaScript Strict Mode

    In JavaScript strict mode, if the first argument of the apply() method is not an object, it becomes the owner (object) of the invoked function. In "non-strict" mode, it becomes the global object.

    Navigate this module

    Eventually the navigation links, above, will be replaced by these << (previous) and >> (next) buttons below.



    JavaScript icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon