Como puedo definir esto de forma recursiva, pasando un parametro:
mi_funcion = function(){
}(i);
| ||||
Respuesta: Funcion autoejecutable y recursiva Edit: pongo un ejemplo que se ilustre mejor:
Código javascript:
Ver original Esta funcion computa factoriales de lo que le pasas |
| ||||
Respuesta: Funcion autoejecutable y recursiva Hola: Como ejemplo de recursión, el factorial... function factorial(n) { if (n > 1) return n * factorial(n - 1) else return n; } Pero la otra parte no consigo captarla... Saludos
__________________ Por favor: No hagan preguntas de temas de foros en mensajes privados... no las respondo |
| ||||
Respuesta: Funcion autoejecutable y recursiva Hola, gracias por compartir su opinion... veamos: Mi problema no es hacer una función recursiva o una auto ejecutable, el problema es unificarla en una sola...Funcion autoejecutable y recursiva Una función que automáticamente se inicie, y que una vez iniciada se procese de forma recursiva. Digamos: var AJX = { Efx:function(idx,x,y,w,h){ fn = function(i){ alert('me ejecuto sola...:'+i);i++; //if(i<=3)fn(i);//esto no funciona..no lo hace hasta que i==3 }(idx); } } var obj = AJX.Efx(1,0,0,0,0); Un saludo... |
| ||||
Respuesta: Funcion autoejecutable y recursiva Hola: Lo raro de esto es que no existe la "autoejecución en javascript"... siempre hace falta un evento o un flujo... si pones en el body: document.write("hola"), se ejecuta por el flujo, pero cualquier otra cosa depende de algún evento... Saludos
__________________ Por favor: No hagan preguntas de temas de foros en mensajes privados... no las respondo |
| ||||
Respuesta: Funcion autoejecutable y recursiva Dices algo como... esto?
Código javascript:
Ver original |
| |||
Respuesta: Funcion autoejecutable y recursiva SPAWN3000, creo que si explicas un poco qué es lo que quieres lograr, a qué resultado quieres llegar quizá se entienda mejor. Porque no sé, lo único que se me ocurre es que quieras hacer algo así:
Código javascript:
Ver original Pero no termino de ver muy bien qué sentido tiene. Y con el ejemplo de AJX, Efx, idx, w, h, j, x... no queda muy claro tampoco. |
| ||||
Respuesta: Funcion autoejecutable y recursiva Cita: Hola, que tal nuevo amigo...Mira, si existe... yo lo hago así. por esto les había posteado el code.
Código:
Se que algunas veces he echo preguntas medio rebuscadas, lo siento... Pero realmente es que lo necesito.<script> fn = function(){ alert('me ejecuto sola...'); }(); </script> <script> //Pero lo que necesito es esto, una función auto ejecutable y recursiva, que se ejecute dentro de otra... /* var AJX = { Efx:function(idx,x,y,w,h){ fn = function(i){ alert('me ejecuto sola...:'+i);i++; //if(i<=3)fn(i);//esto no funciona..no lo hace hasta que i==3 }(idx); } } var obj = AJX.Efx(1,0,0,0,0); */ </script> Un saludo y gracias por seguirme la corriente. |
| ||||
Respuesta: Funcion autoejecutable y recursiva Cita: Siiipi, exactamente...ahora la pregunta... que hace arguments y callee? No los conocía...bueno de echo siendo más sincero, apenas estoy conociendo el lenguaje, pero espero hacerlo muy rápido.
Iniciado por jeybi Dices algo como... esto?
Código javascript:
Ver original Un saludo jeybi... |
| ||||
Respuesta: Funcion autoejecutable y recursiva Bueno que deseo hacer: una función parametrizable compuesta 'Así podría llamarla yo, no se que termino utilizan ustedes para(función autoejecutable y recursiva)' para manejo de redimención y desplazamiento en ventanas, layer o la mayoría de elementos. (ya que todos estos procedimientos son similares) Por q' el auto ejecutable... una vez invocada, la función externa le diga a la función interna que hacer acorde a un valor, pero ese aspecto se analiza de forma externa..así no se repite el análisis y pierde velocidad de procesamiento. - mifunción externa configura los parámetros, y luego simplemente la función auto ejecutable amplia en ancho o alto, izq o derecha siguiendo un patron establecido por la función externa... //Por ello (iddelelemento,poscionx,posicióny,ancho,alto) (idx,x,y,w,h)... //Claro, al final no es exactamente así como debe quedar...pero espero que tenga la menor cantidad de líneas posibles, Y que posteriormente se pueda heredar efectos extraídos de una clase externa. Como shadow, blur, opacity...algo si. Un saludo, y grácias nuevamente por toda la ayuda que me han ido prestando. |
| |||
Respuesta: Funcion autoejecutable y recursiva SPAWN3000, si me permites el consejo, creo que para otra vez lo de explicar lo que quieres hacer debería ser lo primero de todo. Además, si tienes un caso concreto del uso por el que quieres hacerlo, creo que también sería buena idea ponerlo, con el código real, para que se entienda más claramente. |
| ||||
Respuesta: Funcion autoejecutable y recursiva jeje, ya se que hace arguments... simplemente crea un objeto de tipo array con los argumentos de la función. { arguments.callee permite a funciones anónimas referirse a ellas mismas, lo cual es necesario en funciones anónimas recursivas, haaa por eso funciona! y JavaScript 1.4: Desaconsejó callee... ninguno de los métodos de this, permite hacer referencia a la función...(Yo lo intente infructuosamente). Esto lo publico con el fin de que alguien mas tenga el mismo problema. aunque la solución fue sencilla. Es un sentimiento complicado de tener algo, sin la certeza de como funciona! } Podría existir algún método de remplazar callee? Un saludo. Última edición por SPAWN3000; 27/02/2009 a las 10:44 |
| ||||
Respuesta: Funcion autoejecutable y recursiva Cita: Mil disculpas VenK, concuerdo con tu propuesta... solo pensé que partiendo del título... función auto-ejecutable y recursiva(lo decía todo). Pero prometo poner más trabajo en mis preguntas...
Iniciado por venkman SPAWN3000, si me permites el consejo, creo que para otra vez lo de explicar lo que quieres hacer debería ser lo primero de todo. Además, si tienes un caso concreto del uso por el que quieres hacerlo, creo que también sería buena idea ponerlo, con el código real, para que se entienda más claramente. Un saludo y gracias por el consejo. |
| ||||
Respuesta: Funcion autoejecutable y recursiva Por cierto caricatos, olvide agradecerte por la herramienta destripador... sin intenciones de ofender, tu página estará algo carente de diseño pero me ha sido muy útil tu herramienta en más de una ocasión entre otras cosas... Acertado en este requerimiento. Un saludo. |
| ||||
Respuesta: Funcion autoejecutable y recursiva Cita: El uso de arguments esta desaconsejado solo cuando lo usamos como propiedad de una funcion, es decir; function abc(){ abc.arguments.calle() } Lo que pasa es que ahora arguments es una variable local dentro de la funcion, no una propiedad de esta y puede ser utilizada como cualquier varibale local, callee y lenght son propiedades de arguments. Con todo esto quiero decir, que no hay razon de porque no usar arguments.calle ya que en el ejemplo que posteo esta bien utilizado |
| ||||
Respuesta: Funcion autoejecutable y recursiva Tampoco es necesario usar arguments.callee:
Código javascript:
Ver original
__________________ Fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications |
| ||||
Respuesta: Funcion autoejecutable y recursiva Sensei extrañado de tu ausencia, veamos ahora con que me sorprendes... panino, Probado tu Code y aprobado su uso... gracias por hacer parte una vez más. Aun faltan las pruebas de rendimiento y compatibilidad y listo! Un saludo a todos, y muchas gracias por aportar su experiencia. Última edición por SPAWN3000; 27/02/2009 a las 12:02 |
| ||||
Respuesta: Funcion autoejecutable y recursiva Tenían conocimiento de que innerHTML no se comporta muy bien con otros navegadores diferentes de Iexplorer, es mejor validar el uso de DOM para otros y innerHTML sólo para IE(ya se imaginaran por es mas rápido en IE)... Esto si les puede interesar: <head> <script> function replace(e,html) { var oldEl = (typeof e === "string" ? document.getElementById(e):e); /*@cc_on oldEl.innerHTML = html; @*/ var newEl = oldEl.cloneNode(false); newEl.innerHTML = html; oldEl.parentNode.replaceChild(newEl, oldEl); }; </script> </head> <body> <a href="#" onclick="replace('texto','Fernando')">remplazar</a> <div id="texto">Hola...</div> </body> |
| ||||
Respuesta: Funcion autoejecutable y recursiva Contrariamente a lo que muchos suponen, innerHTML es más rápido que DOM no sólo en explorer. Además es parte del estandar HTML5 ;) Volviendo a lo anterior, según entiendo arguments.callee está desaconsejado siempre y no sólo bajo determinadas circunstancias (puedo estar equivocado, pero creo que así es)
__________________ Fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications |
| ||||
Respuesta: Funcion autoejecutable y recursiva Fijate: http://www.developer-x.com/content/i...perf_test.html http://jessedearing.com/blog/develop...dom-functions/ Hay muchos test creados que lo comprueban.
__________________ Fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications |
| ||||
Respuesta: Funcion autoejecutable y recursiva Estos resultados lo dicen todo: http://www.quirksmode.org/dom/innerhtml.html
__________________ Fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications |
| ||||
Respuesta: Funcion autoejecutable y recursiva Retornando de mi almuerzo: Y espero digerir correctamente tu propuesta. Conocía el ultimo test que has posteado, lo había visitado hace algo de tiempo...Pero me queda la duda, en este test: http://stevenlevithan.com/demo/replaceHtml.html En Iexplorer: innerHTML (destroy only): 18ms innerHTML (create only): 67ms innerHTML (destroy & create): 85ms replaceHtml (destroy only): 18ms (~ same speed) replaceHtml (create only): 68ms (~ same speed) replaceHtml (destroy & create): 84ms (~ same speed) Done. En Firefox: con 10000 elementos todo comienza a cambiar: innerHTML (destroy only): 3001ms innerHTML (create only): 1264ms innerHTML (destroy & create): 4426ms replaceHtml (destroy only): 18ms (166.7x faster) replaceHtml (create only): 102ms (12.4x faster) replaceHtml (destroy & create): 119ms (37.2x faster) Done. Y el tiempo que te pone ha esperar Firefox es realmente considerable comparado con IE con la prueba de 15000 elementos... En la practica es probable que nunca se implemente la creación de 15000 elementos. Es por simple documentación. |
| ||||
Respuesta: Funcion autoejecutable y recursiva Desconfío un poco de ese test. Siempre da resultados demasiado diferentes y no es muy claro cómo funciona.
__________________ Fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications |
| ||||
Respuesta: Funcion autoejecutable y recursiva Cita: También estoy invocando tu idea, al parecer el test no es tan sólido como se puede esperar ya he guardado ambas páginas y les pasare unas cuantas pruebas este fin de semana y entonces te podre contestar.Claro que no espero gran cosa de la prueba, ya que mi tiempo de haberme enfocado más seriamente en javascript se reduce a 2 o 3 meses mas o menos... Un saludo, Última edición por SPAWN3000; 27/02/2009 a las 13:28 |