{"id":103,"date":"2014-03-27T15:16:51","date_gmt":"2014-03-27T15:16:51","guid":{"rendered":"http:\/\/www.devinet.es\/blog\/?p=103"},"modified":"2014-03-29T20:34:53","modified_gmt":"2014-03-29T20:34:53","slug":"curiosidades-de-javascript-formas-de-invocar-funciones-parte-2","status":"publish","type":"post","link":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/","title":{"rendered":"Curiosidades de Javascript: Formas de invocar funciones (Parte 2)"},"content":{"rendered":"<p>\u00a1Hola frikazos de la inform\u00e1tica!<\/p>\n<p>Este post es la segunda parte de la serie \u00ab<a title=\"Curiosidades de Javascript: Formas de invocar funciones (Parte 1)\" href=\" http:\/\/www.devinet.es\/blog\/?p=68\" target=\"_blank\">Formas de invocar funciones en Javascript<\/a>\u00ab, si no hab\u00e9is le\u00eddo el primero, ah\u00ed os dejo el link. Os recomiendo que le ech\u00e9is un vistazo antes de continuar leyendo, ya que sino puede que os ve\u00e1is un poco perdidos&#8230; o no&#8230; no se, pero leedlo que yo os esperar\u00e9, y nos sentaremos juntos frente al mar, y de la mano podremos camina-a-ar. Sigamos.<\/p>\n<p>Siento que haya tardado tanto en salir la segunda parte del post, pero estas semanas hemos tenido mucho curro&#8230;<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" alt=\"\" src=\"https:\/\/i0.wp.com\/1.bp.blogspot.com\/-6LHEDDuwedA\/UHhUNxPRWrI\/AAAAAAAABFs\/15ITrmzxUXM\/s320\/retmku-2042722.jpg?resize=320%2C211\" width=\"320\" height=\"211\" \/><\/p>\n<p>&#8230; y la verdad es que ha sido algo frustrante porque ten\u00eda tanto que daros, tantas cosas que contaros, ten\u00eda tanto codig\u00f3\u00f3\u00f3\u00f3&#8230; guardado para vosotros&#8230; (s\u00e9 que c\u00f3digo lleva acento en la primera \u00abo\u00bb).\u00a0Por lo visto, hoy me siento algo musical, pero ahora que ya he sacado algo inspiraci\u00f3n de la Srta. Daconte, ahora s\u00ed, sigamos.<\/p>\n<p>En el otro art\u00edculo nos quedamos en la invocaci\u00f3n de funciones como funciones normales y \u00abcorrientes\u00bb. El siguiente tipo de invocaci\u00f3n que me toca explicar es la del constructor. Los que conozc\u00e1is la programaci\u00f3n orientada a objetos ya sab\u00e9is lo que es un constructor , pero para los que no lo sep\u00e1is, un constructor es una funci\u00f3n de una clase, que suele llevar el nombre de la misma clase en la que se encuentra, y sirve para instanciar una copia de la clase mediante la palabra clave <em>new.\u00a0<\/em>En Javascript ocurre mas o menos lo mismo, pero como ya vimos en el art\u00edculo anterior, Javascript no tiene clases. Esto es un ejemplo de lo que me refiero:<\/p>\n<pre lang=\"javascript\" escaped=\"true\">var Pokemon = function(nombre) {\r\n\tthis.nombre = nombre;\r\n};\r\n\r\nPokemon.prototype.dameTuNombre = function() {\r\n\treturn \"Me llamo \" + this.nombre;\r\n}\r\n\r\nvar pikachu =  new Pokemon('Francisco el Rechul\u00f3n Amarillo');\r\n\r\nconsole.log(pikachu.dameTuNombre());\r\n\/\/ Por consola sale: \"Me llamo Francisco el Rechul\u00f3n Amarillo\"<\/pre>\n<p>Como ya hab\u00eda mencionado en el otro art\u00edculo, Javascript tiene un tipo de herencia que se llama prototipal,<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" class=\"aligncenter\" alt=\"\" src=\"https:\/\/i0.wp.com\/i877.photobucket.com\/albums\/ab340\/My4ChanBucket\/Idiocracy.jpg?w=300\"  \/><\/p>\n<p>&#8230; de ah\u00ed la palabra \u00abprototype\u00bb que vemos en el c\u00f3digo (es us paradigma de programaci\u00f3n similar a la programaci\u00f3n orientada a objetos). \u00a0Pues bien, si recordamos el post anterior, dije que las diferentes formas de invocar funciones en Javascript se diferencian por el valor que el lenguaje le asigna a \u00abthis\u00bb. En este caso, cuando usamos la palabra clave \u00abnew\u00bb antes de llamar a la funci\u00f3n, lo que hacemos es crear un objeto nuevo con un enlace al valor del prototipo de la funci\u00f3n. Si debug\u00e1is c\u00f3digo javascript, ver\u00e9is que todos los objetos, incluidas las funciones, tienen un miembro llamado \u00ab__proto__\u00bb, o algo as\u00ed, pues bien, ese es el enlace al \u00abpadre\u00bb del objeto. S\u00e9 que es muy lioso, pero se entiende un poco mejor cuando toqueteas el c\u00f3digo (yo personalmente hay cosas que sigo sin entender). \u00a0En cuanto al valor de \u00abthis\u00bb, cuando se crea este enlace, el valor de \u00abthis\u00bb cambia al objeto actual, de esta forma se puede usar como el \u00abthis\u00bb de toda la vida.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" alt=\"\" src=\"https:\/\/i0.wp.com\/www.thepowderblues.com\/forum\/images\/smilies\/my-brain-hurts-o.gif?resize=320%2C214\" width=\"320\" height=\"214\" \/><\/p>\n<p>Por suerte, la \u00faltima forma de invocar funciones en Javascript quiz\u00e1 sea la m\u00e1s sencilla de todas, ya que t\u00fa mismo le dices a la funci\u00f3n el valor que debe tener \u00abthis\u00bb.<\/p>\n<p>En Javascript, como ya hemos visto, las funciones tambi\u00e9n pueden tener m\u00e9todos, y concretamente, hay un m\u00e9todo muy interesante con el que vienen todas las funciones, y es la funci\u00f3n \u00abapply\u00bb. Esta funci\u00f3n recibe dos par\u00e1metros, el valor que debe recibir \u00abthis \u00ab, y un array de par\u00e1metros. Siguiendo con el ejemplo anterior:<span style=\"line-height: 1.5em;\">\u00a0<\/span><\/p>\n<pre lang=\"javascript\" escaped=\"true\">var Pokemon = function(nombre) {\r\n\tthis.nombre = nombre;\r\n};\r\n\r\nPokemon.prototype.dameTuNombre = function() {\r\n\treturn \"Me llamo \" + this.nombre;\r\n}\r\n\r\nvar pikachu =  new Pokemon('Francisco el Rechul\u00f3n Amarillo');\r\n\r\nconsole.log(pikachu.dameTuNombre());\r\n\/\/ Por consola sale: \"Me llamo Francisco el Rechul\u00f3n Amarillo\"\r\n\r\nvar nombre = Pokemon.prototype.dameTuNombre.apply(pikachu);\r\nconsole.log(nombre);\r\n\/\/ Por consola sale: \"Me llamo Francisco el Rechul\u00f3n Amarillo\"\r\n\r\nvar bulbasur = new Pokemon('Jose Mar\u00eda el Cachondo Verde');\r\nvar nombre2 = pikachu.dameTuNombre.apply(bulbasur);\r\nconsole.log(nombre2);\r\n\/\/ Por consola sale: \"Me llamo Jose Mar\u00eda el Cachondo Verde\"<\/pre>\n<p>Como podemos ver, no importa el objeto que uses para invocar la funci\u00f3n, con apply puedes cambiar el valor de \u00abthis\u00bb a cualquier cosa. En este ejemplo, podr\u00eda haber creado un objeto nuevo que tuviese como miembro una funci\u00f3n llamada \u00abnombre\u00bb, que devolviese una funci\u00f3n, que devolviese otra funci\u00f3n, que devolviese otra funci\u00f3n, que devolviese un nombre aleatorio, con Javascript puedes complicar las cosas todo lo que quieras.<\/p>\n<p>Pues eso es todo amigos, ya he demostrado que Javascript es un lenguaje mutante parasital. Para los frikis de Starcraft, Javascript es el Zerg de los lenguajes de programaci\u00f3n, contiene bichos dentro de otros bichos y se esparce como la espuma. Y con esta imagen mental que os he dejado, me despido.<\/p>\n<p>Hasta la pr\u00f3xima frikazos de la inform\u00e1tica.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a1Hola frikazos de la inform\u00e1tica! Este post es la segunda parte de la serie \u00abFormas de invocar funciones en Javascript\u00ab, si no hab\u00e9is le\u00eddo el primero, ah\u00ed os dejo el link. Os recomiendo que le ech\u00e9is un vistazo antes de continuar leyendo, ya que sino puede que os ve\u00e1is un poco perdidos&#8230; o no&#8230; no&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9],"tags":[19,17,15,16,18],"class_list":["post-103","post","type-post","status-publish","format-standard","hentry","category-tutorials","tag-frontend","tag-funciones","tag-javascript","tag-tutorial","tag-web-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Curiosidades de Javascript: Formas de invocar funciones (Parte 2) - El blog de Devinet<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Curiosidades de Javascript: Formas de invocar funciones (Parte 2) - El blog de Devinet\" \/>\n<meta property=\"og:description\" content=\"\u00a1Hola frikazos de la inform\u00e1tica! Este post es la segunda parte de la serie \u00abFormas de invocar funciones en Javascript\u00ab, si no hab\u00e9is le\u00eddo el primero, ah\u00ed os dejo el link. Os recomiendo que le ech\u00e9is un vistazo antes de continuar leyendo, ya que sino puede que os ve\u00e1is un poco perdidos&#8230; o no&#8230; no...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/\" \/>\n<meta property=\"og:site_name\" content=\"El blog de Devinet\" \/>\n<meta property=\"article:published_time\" content=\"2014-03-27T15:16:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-03-29T20:34:53+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/1.bp.blogspot.com\/-6LHEDDuwedA\/UHhUNxPRWrI\/AAAAAAAABFs\/15ITrmzxUXM\/s320\/retmku-2042722.jpg\" \/>\n<meta name=\"author\" content=\"David Gonz\u00e1lez Shannon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Gonz\u00e1lez Shannon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/\"},\"author\":{\"name\":\"David Gonz\u00e1lez Shannon\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#\\\/schema\\\/person\\\/77a402ae7af312ef2ccdb8fd35082deb\"},\"headline\":\"Curiosidades de Javascript: Formas de invocar funciones (Parte 2)\",\"datePublished\":\"2014-03-27T15:16:51+00:00\",\"dateModified\":\"2014-03-29T20:34:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/\"},\"wordCount\":720,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/1.bp.blogspot.com\\\/-6LHEDDuwedA\\\/UHhUNxPRWrI\\\/AAAAAAAABFs\\\/15ITrmzxUXM\\\/s320\\\/retmku-2042722.jpg\",\"keywords\":[\"frontend\",\"funciones\",\"javascript\",\"tutorial\",\"web development\"],\"articleSection\":[\"Tutoriales\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/\",\"url\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/\",\"name\":\"Curiosidades de Javascript: Formas de invocar funciones (Parte 2) - El blog de Devinet\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/1.bp.blogspot.com\\\/-6LHEDDuwedA\\\/UHhUNxPRWrI\\\/AAAAAAAABFs\\\/15ITrmzxUXM\\\/s320\\\/retmku-2042722.jpg\",\"datePublished\":\"2014-03-27T15:16:51+00:00\",\"dateModified\":\"2014-03-29T20:34:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/#primaryimage\",\"url\":\"http:\\\/\\\/1.bp.blogspot.com\\\/-6LHEDDuwedA\\\/UHhUNxPRWrI\\\/AAAAAAAABFs\\\/15ITrmzxUXM\\\/s320\\\/retmku-2042722.jpg\",\"contentUrl\":\"http:\\\/\\\/1.bp.blogspot.com\\\/-6LHEDDuwedA\\\/UHhUNxPRWrI\\\/AAAAAAAABFs\\\/15ITrmzxUXM\\\/s320\\\/retmku-2042722.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Curiosidades de Javascript: Formas de invocar funciones (Parte 2)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/\",\"name\":\"El blog de Devinet\",\"description\":\"Dise\u00f1o y desarrollo de aplicaciones m\u00f3viles y web\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#organization\",\"name\":\"Devinet 2013, S.L.U.\",\"url\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i2.wp.com\\\/www.devinet.es\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/12\\\/98ef986324a7c10843b4a3206fe878531-54989f9dv1_site_icon.png?fit=512%2C512&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i2.wp.com\\\/www.devinet.es\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/12\\\/98ef986324a7c10843b4a3206fe878531-54989f9dv1_site_icon.png?fit=512%2C512&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"Devinet 2013, S.L.U.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/#\\\/schema\\\/person\\\/77a402ae7af312ef2ccdb8fd35082deb\",\"name\":\"David Gonz\u00e1lez Shannon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdcda347103ecc56080c8dfc99d92641e58d87ff0701cace8934b091dc51b27d?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdcda347103ecc56080c8dfc99d92641e58d87ff0701cace8934b091dc51b27d?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cdcda347103ecc56080c8dfc99d92641e58d87ff0701cace8934b091dc51b27d?s=96&d=retro&r=g\",\"caption\":\"David Gonz\u00e1lez Shannon\"},\"sameAs\":[\"http:\\\/\\\/www.devinet.es\"],\"url\":\"https:\\\/\\\/www.devinet.es\\\/blog\\\/author\\\/gooster\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Curiosidades de Javascript: Formas de invocar funciones (Parte 2) - El blog de Devinet","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/","og_locale":"es_ES","og_type":"article","og_title":"Curiosidades de Javascript: Formas de invocar funciones (Parte 2) - El blog de Devinet","og_description":"\u00a1Hola frikazos de la inform\u00e1tica! Este post es la segunda parte de la serie \u00abFormas de invocar funciones en Javascript\u00ab, si no hab\u00e9is le\u00eddo el primero, ah\u00ed os dejo el link. Os recomiendo que le ech\u00e9is un vistazo antes de continuar leyendo, ya que sino puede que os ve\u00e1is un poco perdidos&#8230; o no&#8230; no...","og_url":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/","og_site_name":"El blog de Devinet","article_published_time":"2014-03-27T15:16:51+00:00","article_modified_time":"2014-03-29T20:34:53+00:00","og_image":[{"url":"http:\/\/1.bp.blogspot.com\/-6LHEDDuwedA\/UHhUNxPRWrI\/AAAAAAAABFs\/15ITrmzxUXM\/s320\/retmku-2042722.jpg","type":"","width":"","height":""}],"author":"David Gonz\u00e1lez Shannon","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"David Gonz\u00e1lez Shannon","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/#article","isPartOf":{"@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/"},"author":{"name":"David Gonz\u00e1lez Shannon","@id":"https:\/\/www.devinet.es\/blog\/#\/schema\/person\/77a402ae7af312ef2ccdb8fd35082deb"},"headline":"Curiosidades de Javascript: Formas de invocar funciones (Parte 2)","datePublished":"2014-03-27T15:16:51+00:00","dateModified":"2014-03-29T20:34:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/"},"wordCount":720,"commentCount":2,"publisher":{"@id":"https:\/\/www.devinet.es\/blog\/#organization"},"image":{"@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/#primaryimage"},"thumbnailUrl":"http:\/\/1.bp.blogspot.com\/-6LHEDDuwedA\/UHhUNxPRWrI\/AAAAAAAABFs\/15ITrmzxUXM\/s320\/retmku-2042722.jpg","keywords":["frontend","funciones","javascript","tutorial","web development"],"articleSection":["Tutoriales"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/","url":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/","name":"Curiosidades de Javascript: Formas de invocar funciones (Parte 2) - El blog de Devinet","isPartOf":{"@id":"https:\/\/www.devinet.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/#primaryimage"},"image":{"@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/#primaryimage"},"thumbnailUrl":"http:\/\/1.bp.blogspot.com\/-6LHEDDuwedA\/UHhUNxPRWrI\/AAAAAAAABFs\/15ITrmzxUXM\/s320\/retmku-2042722.jpg","datePublished":"2014-03-27T15:16:51+00:00","dateModified":"2014-03-29T20:34:53+00:00","breadcrumb":{"@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/#primaryimage","url":"http:\/\/1.bp.blogspot.com\/-6LHEDDuwedA\/UHhUNxPRWrI\/AAAAAAAABFs\/15ITrmzxUXM\/s320\/retmku-2042722.jpg","contentUrl":"http:\/\/1.bp.blogspot.com\/-6LHEDDuwedA\/UHhUNxPRWrI\/AAAAAAAABFs\/15ITrmzxUXM\/s320\/retmku-2042722.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.devinet.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Curiosidades de Javascript: Formas de invocar funciones (Parte 2)"}]},{"@type":"WebSite","@id":"https:\/\/www.devinet.es\/blog\/#website","url":"https:\/\/www.devinet.es\/blog\/","name":"El blog de Devinet","description":"Dise\u00f1o y desarrollo de aplicaciones m\u00f3viles y web","publisher":{"@id":"https:\/\/www.devinet.es\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.devinet.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.devinet.es\/blog\/#organization","name":"Devinet 2013, S.L.U.","url":"https:\/\/www.devinet.es\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.devinet.es\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i2.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2014\/12\/98ef986324a7c10843b4a3206fe878531-54989f9dv1_site_icon.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i2.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2014\/12\/98ef986324a7c10843b4a3206fe878531-54989f9dv1_site_icon.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Devinet 2013, S.L.U."},"image":{"@id":"https:\/\/www.devinet.es\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.devinet.es\/blog\/#\/schema\/person\/77a402ae7af312ef2ccdb8fd35082deb","name":"David Gonz\u00e1lez Shannon","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/cdcda347103ecc56080c8dfc99d92641e58d87ff0701cace8934b091dc51b27d?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdcda347103ecc56080c8dfc99d92641e58d87ff0701cace8934b091dc51b27d?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdcda347103ecc56080c8dfc99d92641e58d87ff0701cace8934b091dc51b27d?s=96&d=retro&r=g","caption":"David Gonz\u00e1lez Shannon"},"sameAs":["http:\/\/www.devinet.es"],"url":"https:\/\/www.devinet.es\/blog\/author\/gooster\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4pwkm-1F","jetpack-related-posts":[{"id":68,"url":"https:\/\/www.devinet.es\/blog\/curiosidades-de-javascript-formas-de-invocar-funciones-parte-1\/","url_meta":{"origin":103,"position":0},"title":"Curiosidades de Javascript: Formas de invocar funciones (Parte 1)","author":"David Gonz\u00e1lez Shannon","date":"marzo 9, 2014","format":false,"excerpt":"\u00a1Hola frikazos de la inform\u00e1tica! Me llamo David Gonz\u00e1lez Shannon, soy medio espa\u00f1ol medio americano alocado, ingeniero inform\u00e1tico (en realidad soy ingeniero multimedia), friki y amante de la programaci\u00f3n. En septiembre de 2013, empec\u00e9 a trabajar en Devinet como el Wildcard de la empresa, en castellano, la navaja suiza. Al\u2026","rel":"","context":"En \u00abTutoriales\u00bb","block_context":{"text":"Tutoriales","link":"https:\/\/www.devinet.es\/blog\/category\/tutorials\/"},"img":{"alt_text":"Gato tocando piano.","src":"https:\/\/i0.wp.com\/www.rowsdowr.com\/wp-content\/uploads\/2011\/07\/icgcek.gif?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":18,"url":"https:\/\/www.devinet.es\/blog\/bienvenidos-a-nuestro-blog\/","url_meta":{"origin":103,"position":1},"title":"Bienvenidos a nuestro Blog","author":"Cristina Rodr\u00edguez Amor\u00f3s","date":"febrero 20, 2014","format":false,"excerpt":"Hoy inauguramos oficialmente el blog de Devinet, en \u00e9l os mantendremos informados sobre las \u00faltimas novedades en el mundo de la tecnolog\u00eda. Algunas de las secciones que podr\u00e9is encontrar son las siguientes: Eventos:\u00a0 Os contaremos de primera mano nuestra experiencia sobre los eventos a los que asistimos y toda la\u2026","rel":"","context":"En \u00abDevinet\u00bb","block_context":{"text":"Devinet","link":"https:\/\/www.devinet.es\/blog\/category\/devinet\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":25,"url":"https:\/\/www.devinet.es\/blog\/istick-it-y-su-historia\/","url_meta":{"origin":103,"position":2},"title":"\u00a1iStick-It  y su historia!","author":"Cristina Rodr\u00edguez Amor\u00f3s","date":"marzo 5, 2014","format":false,"excerpt":"\u00a1Buenas tardes! Hoy os explicaremos la historia de una de nuestras primeras Apps \u00a1 iSick-it!\u00a0, que ha conseguido m\u00e1s de 300.000 usuarios. Todo comenz\u00f3 una tarde en clase cuando a Ra\u00fal se le ocurri\u00f3 que podr\u00eda resultar muy \u00fatil crear una App que permitiese tomar notas y realizar dibujos de\u2026","rel":"","context":"En \u00abApps\u00bb","block_context":{"text":"Apps","link":"https:\/\/www.devinet.es\/blog\/category\/app\/"},"img":{"alt_text":"screen170x170","src":"https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2014\/02\/screen170x170.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1369,"url":"https:\/\/www.devinet.es\/blog\/automatizacion-procesos-empresariales-software-iot-ia\/","url_meta":{"origin":103,"position":3},"title":"Automatizaci\u00f3n de procesos empresariales: software a medida, IoT e IA para optimizar tu empresa","author":"Ra\u00fal Vidal Mui\u00f1os","date":"diciembre 10, 2025","format":false,"excerpt":"La automatizaci\u00f3n de procesos empresariales ya no es una opci\u00f3n sino un imperativo para las organizaciones que quieren seguir siendo competitivas. En Espa\u00f1a, la digitalizaci\u00f3n aporta hasta un 24\u00a0% del PIB nacional seg\u00fan diversos estudios de consultoras especializadas, y solo alrededor de una cuarta parte de las empresas tienen una\u2026","rel":"","context":"En \u00abAutomatizaci\u00f3n empresarial\u00bb","block_context":{"text":"Automatizaci\u00f3n empresarial","link":"https:\/\/www.devinet.es\/blog\/category\/automatizacion-empresarial\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2025\/12\/automatizacion-procesos-empresariales-software.jpg?fit=1080%2C589&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2025\/12\/automatizacion-procesos-empresariales-software.jpg?fit=1080%2C589&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2025\/12\/automatizacion-procesos-empresariales-software.jpg?fit=1080%2C589&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2025\/12\/automatizacion-procesos-empresariales-software.jpg?fit=1080%2C589&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2025\/12\/automatizacion-procesos-empresariales-software.jpg?fit=1080%2C589&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":20,"url":"https:\/\/www.devinet.es\/blog\/presentacion-devinet\/","url_meta":{"origin":103,"position":4},"title":"Presentaci\u00f3n Devinet","author":"Cristina Rodr\u00edguez Amor\u00f3s","date":"marzo 5, 2014","format":false,"excerpt":"\u00a1Hola a todos! En el post de hoy, os traemos un poco de informaci\u00f3n sobre nuestra empresa as\u00ed, aquellos que todav\u00eda no nos conozcan podr\u00e1n tener una visi\u00f3n global sobre nosotros y los servicios que ofrecemos. Nosotros somos una consultora tecnol\u00f3gica especializada en el dise\u00f1o y desarrollo de aplicaciones m\u00f3viles\u2026","rel":"","context":"En \u00abDevinet\u00bb","block_context":{"text":"Devinet","link":"https:\/\/www.devinet.es\/blog\/category\/devinet\/"},"img":{"alt_text":"raul","src":"https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2014\/02\/raul.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":356,"url":"https:\/\/www.devinet.es\/blog\/como-promocionar-tu-app-en-las-stores-parte-1\/","url_meta":{"origin":103,"position":5},"title":"\u00bfC\u00f3mo promocionar tu App en las Stores? &#8211; Parte 1","author":"Cristina Rodr\u00edguez Amor\u00f3s","date":"octubre 5, 2015","format":false,"excerpt":"Cada d\u00eda miles de nuevas aplicaciones son publicadas en las Stores, por lo que para conseguir que tu App tenga una buena visibilidad es necesario promocionarla adecuadamente y as\u00ed\u00a0poder incrementar el n\u00famero de descargas. Hay que tener en cuenta la importancia de esta fase\u00a0ya que una\u00a0aplicaci\u00f3n mediocre bien promocionada puede\u2026","rel":"","context":"En \u00abApps\u00bb","block_context":{"text":"Apps","link":"https:\/\/www.devinet.es\/blog\/category\/app\/"},"img":{"alt_text":"app-store-optimization-ASO","src":"https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2015\/10\/app-store-optimization-ASO.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2015\/10\/app-store-optimization-ASO.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.devinet.es\/blog\/wp-content\/uploads\/2015\/10\/app-store-optimization-ASO.jpg?resize=525%2C300 1.5x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/posts\/103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/comments?post=103"}],"version-history":[{"count":9,"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/posts\/103\/revisions"}],"predecessor-version":[{"id":122,"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/posts\/103\/revisions\/122"}],"wp:attachment":[{"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/media?parent=103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/categories?post=103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devinet.es\/blog\/wp-json\/wp\/v2\/tags?post=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}