Está en la página 1de 2

*************** Funcion como objeto, NFE ***********************

1: Como ya sabemos una funcion en javascript es un valor

2: Cada valor en javascript tiene un tipo de dato

1: Una funcion es un objeto osea pertenece al tipo de dato Objeto

3: Una buena manera de imaginar funciones es como "Objetos de accion" no solo


podemos llamarla sino tambien tratarlo como objeto

1: Agregar / eliminar propiedades

2: Pasar por referencia etc

1: La propiedad name

1: Las funciones como objeto contienen algunas propiedades utilizables

2: El nombre de una funcion es accesible mediante la propiedad name

function prueba() {alert("hi")}

alert(prueba.name) // prueba

3: Funciona tambien con las expreciones de funcion

4: Funciona tambien si la asignacion se hizo en un valor predeterminado

function prueba( a = funcion() {}) { console.log(a.name)} //a

5: Esto se denomina nombre contextual si la funcion no proporciona una


entonces la extrae desde la asignacion

6: En los metodos de los objetos tambien funciona esto

obj = metodo() {return "hola"} O metodo: function() {return "hola"}

obj.metodo.name // metodo

7: AY CASOS EN QUE NO AY FORMA DE ENCONTRAR EL NOMBRE CORRECTO

1: En un array la propiedad esta vacia

let arr = [function() {return "hola"}];


arr[0].name // vacio

2: La propiedad length

1: La propiedad length nos devuelve el numero de parametros que tiene una


funcion

2: Los parametros ...rest no se cuentan

function prueba(a,b, ...c) {}

console.log(prueba.length) // 2

3: La propiedad length se puede usar para hacer introspeccion

1: Osea pasar argumentos y segun su tipo dar ciertos


resultados

2: Esto se llama polimorfismo tratar los argumentos de manera diferente


segun su tipo o tambien segun su longitud en este caso

3: Propiedades personalizadas

1:

También podría gustarte