JavaScript: Functions, Function Expressions, Objects, Methods, and this
Megan Paffrath
Posted on August 7, 2024
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();
}
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 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
Posted on August 7, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.