Home  >  Article  >  Web Front-end  >  JavaScript: Functions, Function Expressions, Objects, Methods, and this

JavaScript: Functions, Function Expressions, Objects, Methods, and this

王林
王林Original
2024-08-07 10:43:23835browse

JavaScript: Functions, Function Expressions, Objects, Methods, and this

Simple Basic Function

Here is a simple function that takes no arguments:

function hello() {
  console.log('Hello there stranger, how are you?');
}

hello();

Here is a function that takes one argument:

function greet(person) {
  console.log(`Hi there ${person}.`);
}

greet('Megan');

We can have more than one argument as follows:

function greetFullName(fName, lName) {
  console.log(`Hi there ${fName} ${lName}.`);
}

greetFullName('Megan', 'Paffrath');

Function Expressions

Function expressions are just another way of writing functions. They still work the same way as above:

const square = function(x) {
   return x * x;
};

square(2); // 4

Higher Order Functions

These functions operate with/on other functions, perhaps they:

  • accept other functions as arguments
  • return a function

An example of a function taking another function as an argument is:

function callTwice(func) {
  func();
  func();
}

let laugh = function () {
  console.log('haha');
};

callTwice(laugh);
// haha
// haha

function rollDie() {
  const roll = Math.floor(Math.random() * 6) + 1;
  console.log(roll);
}

callTwice(rollDie);
// random number
// random number

An example of a function returning a function is:

function makeMysteryFunc() {
  const rand = Math.random();
  if (rand > 0.5) {
    return function () {
      console.log('You win');
    };
  } else {
    return function () {
      alert('You have been infected by a computer virus');
      while (true) {
        alert('Stop trying to close this window.');
      }
    };
  }
}

let returnedFunc = makeMysteryFunc();
returnedFunc();

Another (more useful example) is:

function makeBetweenFunc(min, max) {
  return function (num) {
    return num >= min && num <= max;
  };
}

const isBetween = makeBetweenFunc(100, 200);
// isBetween(130); // true
// isBetween(34); // false

Methods

We can add functions as properties on objects (these are called methods).

Ex:

const myMath = {
  PI: 3.14,
  square: function (num) {
    return num * num;
  },
  // note the 2 diff ways of defining methods
  cube(num) {
    return num ** 3;
  },
};

This

'this' is mostly used WITHIN methods of objects. It is used to reference properties of the object.

const person = {
  first: 'Abby',
  last: 'Smith',
  fullName() {
    return `${this.first} ${this.last}`;
  },
};

person.fullName(); // "Abby Smith"
person.lastName = 'Elm';
person.fullName(); // "Abby Elm"

Note, outside of objects, 'this' refers to the top-level window object. To see what this contains, enter this in the console. General functions are stored in the this object too:

// defined on its own (outside of an object)
function howdy() {
  console.log('HOWDY');
}

this.howdy(); // HOWDY

The above is the detailed content of JavaScript: Functions, Function Expressions, Objects, Methods, and this. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Object LiteralsNext article:Object Literals