Funciones
Una función es un objeto, que puede ser utilizado como cualquier otro valor.
Ejemplos:
Una función que retorna otra función.
function primera () {
return function segunda () {}
}Una función transferida a otra función como argumento.
setTimeout(function () {
console.log("Función como argumento");
}, 100);Una función asignada a un objeto.
This referencia al objeto en donde la función fue invocada (contexto), no al objeto al que se asignó la función.
const obj = {
id: 12345,
fn: function() {
console.log(this.id);
}
};
obj.fn(); // 12345const obj = {
id: 1,
fn: function() {
console.log(this.id);
}
};
const obj2 = {
id: 2,
fn: obj.fn
};
obj2.fn(); // 2
obj.fn(); // 1El método call puede ser usado para setear un contexto.
call puede ser usado para setear un contexto.function fn() {
console.log(this.id);
}
const obj1 = {
id: 1
};
const obj2 = {
id: 2
};
fn.call(obj2); // 2
fn.call(obj1); // 1
fn.call({
id: 'testing'
}); // testingFunciones fat arrow o lambda.
Cuando la definimos sin llaves, la expresión que sigue es la que retornaremos.
No tiene su propio contexto, cuando referenciamos un this buscará la función padre no-lambda.
Ejemplo:
function fn() {
return (offset) => {
console.log(this.id + offset)
}
}
const obj = {
id: 999
}
const offsetter = fn.call(obj)
offsetter(1) // 1000 (999 + 1)No tiene la propiedad prototype.
function normalFunction() {}
const fatArrowFunction = () => {}
console.log(typeof normalFunction.prototype) // 'object'
console.log(typeof fatArrowFunction.prototype) // 'undefined'Last updated
Was this helpful?