Se utilizan para remplazar this en una función.

call y bind son similares. Como primer parámetro se le pasa quien actuará como this.

como segundo parámetro. call espera los parametros de la funcíon separados por coma y

apply los espera en un único parametro array que los contenga en su orden.

Finalmente. bind devolverá una nueva función con el remplazo de this y esta se podrá ejecutar a posteriory

const user = {
  name: "Eaf"
}

const business = {
  name: "los almendros"
}

function showInfo(likes, friends) {
  return `${this.name} tiene ${likes} y ${friends}`
}

const funcbind = showInfo.bind(user)
console.log(
  "call: ",
  showInfo.call(user, 4, 3),
  "| apply: ",
  showInfo.apply(user, [7,12]),
  "| bind: ",
  funcbind(9,22)
)