Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: bermartinv en 21 de Marzo 2016, 13:48

Título: closures VS bind
Publicado por: bermartinv en 21 de Marzo 2016, 13:48
Una vez terminado el tema CU01178E https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=866:bind-javascript-funcion-entre-parentesis-envuelta-function-statement-requires-a-name-ejemplos-cu01178e&catid=78:tutorial-basico-programador-web-javascript-desde-&Itemid=206 (https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=866:bind-javascript-funcion-entre-parentesis-envuelta-function-statement-requires-a-name-ejemplos-cu01178e&catid=78:tutorial-basico-programador-web-javascript-desde-&Itemid=206), que trata entre otras cosas sobre el uso de bind. Me viene una duda sobre que es preferibre usar si closures o bind. Y si no fuera equivalente en casos es preferibre usar closures o bind.
En mi caso,  me costó entender un poco lo de closures, incluso más que el uso de bind. Incluso a la hora de usar las closures todavía me cuesta en comparación con bind.
Adjunto ejemplo, para echar un vistazo y comprobar que su uso es equivalente. (He usado un ejemplo usado en el tema de closures https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=854:closures-javascript-ejemplos-concepto-que-son-y-para-que-sirven-retardar-ejecucion-settimeout-cu01169e-&catid=78:tutorial-basico-programador-web-javascript-desde-&Itemid=206 (https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=854:closures-javascript-ejemplos-concepto-que-son-y-para-que-sirven-retardar-ejecucion-settimeout-cu01169e-&catid=78:tutorial-basico-programador-web-javascript-desde-&Itemid=206)

Código: [Seleccionar]
<!DOCTYPE html>

<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">

<style type="text/css">

body { font-family: Helvetica, Arial, sans-serif;}

h2 {  font-size: 1.5em;} h3 { font-size: 1.2em;}

div div {color:blue; margin:10px;}

</style>

<script type="text/javascript">

function cambiarDimensionFuente(size) {   return function() { document.body.style.fontSize = size + 'px';};

}
   
function cambiarDimensionFuentebind(size) {   
   
        document.body.style.fontSize = size + 'px'

}

var size8 = cambiarDimensionFuente(8);

var size16 = cambiarDimensionFuente(16);

var size24 = cambiarDimensionFuente(24);

 

function setClicks(){

document.getElementById('fuente-8').onclick = size8;

document.getElementById('fuente-16').onclick = size16;

document.getElementById('fuente-24').onclick = size24;
   
document.getElementById('fuente-8_bind').onclick = cambiarDimensionFuentebind.bind('undefined',8);

document.getElementById('fuente-16_bind').onclick = cambiarDimensionFuentebind.bind('undefined',16);

document.getElementById('fuente-24_bind').onclick = cambiarDimensionFuentebind.bind('undefined',24);


}

</script></head>

<body onload="setClicks()">

<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3>

<div id ="fuente-8" > Poner texto a 8 </div> <div id ="fuente-16" > Poner texto a 16 </div>

<div id ="fuente-24" > Poner texto a 24 </div> </div>

<br/><br/><br/>

<h2>Esto lo hacemos con bind</h2>
<div>

<div id ="fuente-8_bind" > Poner texto a 8 </div>

 <div id ="fuente-16_bind" > Poner texto a 16 </div>

<div id ="fuente-24_bind" > Poner texto a 24 </div>

<p>En las praderas de la estepa de la Tierra del Fuego suele hacer frío</p>

</div>

</body></html>