Post on 07-Aug-2015
makeitreal.camp
Hablemos de Funciones
Germán Escobar germanescobar.net!@germanescobar!
!
makeitreal.campFunciones
Función
Parámetros
Valor de retorno
makeitreal.campFunciones
En JavaScript, las funciones están en todos lados.
!
A veces son truculentas.
makeitreal.campAsignar a Variables
var saludar = function() { console.log(“Hola”); };
makeitreal.campParámetro de otra función
function saludar(func) { func(“Hola”); } !
saludar(function(saludo) { console.log(saludo); });
makeitreal.campParámetro de otra función
function saludar(func) { func(“Hola”); } !
var f = function(saludo) { console.log(saludo); } saludar(f);
makeitreal.campParámetro de otra función
for (var i=0; i < arr.length; i++) { console.log(arr[i]); } !
function each(arr, action) { for (var i=0; i < arr.length; i++) action(arr[i]); }
makeitreal.campParámetro de otra función
each([1, 2, 3], function(elem) { console.log(elem); }); !
var sum = 0; each([1, 2, 3], function(elem) { sum += elem; });
makeitreal.campParámetro de otra función
var arr = [1, 2, 3]; var arr2 = []; !
for (var i=0; i < arr.length; i++) { arr2.push(arr[i] * 2); }
makeitreal.campParámetro de otra función
function map(arr, action) { var arr2 = []; for (var i=0; i < arr.length; i++) { arr2.push(action(arr[i])); } return arr2; }
makeitreal.campParámetro de otra función
var a = map([1, 2, 3], function(elem) { return elem * 2; }); !
var b = map([1, 2, 3], Math.sqrt); !
map([‘1’, ‘2’], Integer.parseInt);
makeitreal.campRetornar una función
function createBeeper() { return function() { alert(“beep”); }; } !
var beeper = createBeeper(); beeper();
function counter() { var count = 0; return function() { console.log(count++); } }
makeitreal.campRetornar una función
makeitreal.campRetornar una función
var count = counter(); !
count(); count(); count();
makeitreal.campLas funciones son objetos!
function prueba() {} !
prueba.nombre = “German”;
makeitreal.campCuidado con el this!
var obj = { name: “German”, sayHello: function() { return “Hola ” + this.name; } }; !
var hola = obj.sayHello; hola();