{"id":5772,"date":"2024-04-02T09:14:34","date_gmt":"2024-04-02T07:14:34","guid":{"rendered":"https:\/\/www.clickstorm.de\/blog\/?p=5772"},"modified":"2024-04-02T09:14:34","modified_gmt":"2024-04-02T07:14:34","slug":"call-by-reference-value-javascript","status":"publish","type":"post","link":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/","title":{"rendered":"Call-by-Value vs. Call-by-Reference in JavaScript"},"content":{"rendered":"<p>JavaScript (JS), als eine vielseitige und dynamische Sprache, stellt zwei Kernkonzepte f\u00fcr die Daten\u00fcbergabe in Funktionen bereit: <em>Call-by-Value<\/em> und <em>Call-by-Reference<\/em>. Diese Konzepte sind entscheidend f\u00fcr das Verst\u00e4ndnis, wie die Sprache mit Daten umgeht, und sind sowohl f\u00fcr Programmieranf\u00e4nger als auch f\u00fcr fortgeschrittene Entwickler von gro\u00dfer Bedeutung. In diesem Artikel beleuchten wir diese Konzepte mit pr\u00e4zisen Erkl\u00e4rungen und Beispielen, um ein klares Verst\u00e4ndnis ihrer Funktionsweise und Anwendung zu vermitteln.<\/p>\n<h2>Backen eines Marmorkuchens<\/h2>\n<p>Stell dir vor, du besitzt das Rezept f\u00fcr einen leckeren Marmorkuchen, welches du gerne mit einem Freund teilen m\u00f6chtest.<\/p>\n<h3>Fotokopie des Rezepts<\/h3>\n<p><em>Call-by-Value<\/em> entspricht dem Vorgang, eine Fotokopie Ihres Rezepts anzufertigen und diese Ihrem Freund zu geben. Ihr Freund hat jetzt eine Kopie des Rezepts. Wenn er \u00c4nderungen daran vornimmt, etwa Zutaten hinzuf\u00fcgt oder wegl\u00e4sst, hat das keinen Einfluss auf Ihr originales Rezept. Du kannst dir also sicher sein, dass du das n\u00e4chste Mal, wenn du einen Kuchen backst, weiterhin das unver\u00e4nderte Originalrezept verwendest und die \u00c4nderungen deines Freundes bleiben auf seine Kopie beschr\u00e4nkt.<\/p>\n<h3>Das Originalrezept verleihen<\/h3>\n<p>Angenommen du schickst deinem Freund nun den Link zu deiner Google Docs Rezeptesammlung &#8211; nat\u00fcrlich mit Bearbeitungsrechten. Dies w\u00fcrde dem Prinzip von <em>Call-by-Reference<\/em> entsprechen, da jede \u00c4nderung, die dein Freund am Rezept vornimmt, auch deine originale Datei ver\u00e4ndert. Wenn du diese nun zu einem sp\u00e4teren Zeitpunkt \u00f6ffnen und feststellen solltest, dass aus der Prise Salz ein Essl\u00f6ffel wurde, dann w\u00e4re es wohl am kl\u00fcgsten (und am\u00fcsantesten), deinen Freund zuerst den Kuchen kosten zu lassen.<\/p>\n<p>Das h\u00f6rt sich doch gar nicht so schwer an, oder? Sehen wir uns nun diesen Vorgang einmal genauer an.<\/p>\n<h2>Daten\u00fcbergabe aus technischer Sicht<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-5833 aligncenter\" src=\"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/pass_by_reference_meme-273x300.png\" alt=\"Pass By Reference - Java Meme\" width=\"273\" height=\"300\" srcset=\"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/pass_by_reference_meme-273x300.png 273w, https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/pass_by_reference_meme.png 300w\" sizes=\"auto, (max-width: 273px) 100vw, 273px\" \/><\/p>\n<h3>Wie funktioniert <em>Call-by-Value<\/em>?<\/h3>\n<p>Bei <em>Call-by-Value<\/em> wird der Wert einer Variablen als Kopie in die Funktion \u00fcbertragen. Jegliche \u00c4nderungen, die innerhalb der Funktion an diesem Wert vorgenommen werden, bleiben ohne Auswirkungen auf die urspr\u00fcngliche Variable au\u00dferhalb der Funktion. Hierf\u00fcr wird ein separater Speicherplatz zugewiesen, was bedeutet, dass die Funktion in einem eigenen, neuen Speicherbereich operiert. Ein \u00e4hnliches Konzept sehen wir auch im Artikel \u00fcber <a href=\"https:\/\/www.clickstorm.de\/blog\/ecmascript-2023-24\">ECMAScript 2023\/24<\/a> unter dem Abschnitt &#8222;Change Array by Copy&#8220;. Dieses kurze Codebeispiel wird im Folgenden die Funktionsweise der Variablen\u00fcbergabe verdeutlichen.<br \/>\nCodebeispiel:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">function modifyValue(val) {\r\n  val = \u201cNeuer Wert\u201d;\r\n  console.log(\u201cIn der Funktion: \u201c, val);\r\n}\r\nlet myVal = \u201cAlter Wert\u201d;\r\nmodifyValue(myVal);\r\nconsole.log(\"Au\u00dferhalb der Funktion: \", myVal);<\/pre>\n<p>Ergebnis:<br \/>\nIn der Funktion: <strong>Neuer Wert<\/strong><br \/>\nAu\u00dferhalb der Funktion: <strong>Alter Wert<\/strong><\/p>\n<h3>Wie funktioniert <em>Call-by-Reference<\/em>?<\/h3>\n<p>Bei <em>Call-by-Reference<\/em> erfolgt die \u00dcbergabe einer Variablen an eine Funktion durch ihre Referenz, also ihre Speicheradresse. \u00c4nderungen, die innerhalb der Funktion an dieser Referenz vorgenommen werden, reflektieren sich unmittelbar in der Originalvariable. Anstatt eine separate Kopie des Wertes zu bearbeiten, werden hierbei alle \u00c4nderungen auch das Ursprungsobjekt betreffen.<br \/>\nTechnisch gesehen verwendet JavaScript immer <em>Call-by-Value<\/em>, aber im Falle von Objekten (einschlie\u00dflich Arrays und Funktionen) wird der Wert der Referenz \u00fcbergeben. Das bedeutet, dass die Funktion mit der Adresse (Referenz) des Objekts arbeitet, aber die Referenz selbst ist eine Kopie.<br \/>\nCodebeispiel:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">function modifyObject(obj) {\r\n  obj.key = \u201cNeuer Wert\u201d;\r\n  console.log(\"In der Funktion: \", obj);\r\n}\r\nlet myObj = { key: \u201cAlter Wert\u201d };\r\nmodifyObject(myObj);\r\nconsole.log(\"Au\u00dferhalb der Funktion: \", myObj);<\/pre>\n<p>Ergebnis:<br \/>\nIn der Funktion: { key: &#8222;<strong>Neuer Wert<\/strong>&#8220; }<br \/>\nAu\u00dferhalb der Funktion: { key: &#8222;<strong>Neuer Wert<\/strong>&#8220; }<\/p>\n<h3>Das Tassenproblem<\/h3>\n<p>Eines der am h\u00e4ufigsten verwendeten Analogien ist das F\u00fcllen einer Tasse. Angenommen, du hast eine leere Tasse. Nun m\u00f6chtest du diese mit der Funktion fillCup() mit einem leckeren Tee oder Kaffee bef\u00fcllen. Bei Aufruf der Funktion sieht die Tasse wie folgt aus:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5774 size-large\" src=\"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/Tassen-Beispiel-Call-By-Value-Reference-1024x577.png\" alt=\"Beispiel-Call-By-Value \/-Reference\" width=\"1024\" height=\"577\" srcset=\"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/Tassen-Beispiel-Call-By-Value-Reference-1024x577.png 1024w, https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/Tassen-Beispiel-Call-By-Value-Reference-300x169.png 300w, https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/Tassen-Beispiel-Call-By-Value-Reference-768x433.png 768w, https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/Tassen-Beispiel-Call-By-Value-Reference.png 1170w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Wenn die Referenz in der Funktion \u00fcbergeben wird, ver\u00e4ndert sich nicht nur die Variable innerhalb der Funktion, sondern die urspr\u00fcngliche Variable wird ebenfalls ver\u00e4ndert. Bei einem Call by Value Aufruf wird hingegen nur die Variable innerhalb der Funktion ver\u00e4ndert, die urspr\u00fcngliche beh\u00e4lt ihren Wert.<\/p>\n<h3>H\u00e4ufige Missverst\u00e4ndnisse<\/h3>\n<p>In der JavaScript-Entwicklung existieren h\u00e4ufig Missverst\u00e4ndnisse bez\u00fcglich der Handhabung von primitiven Datentypen und Objekten sowie dem Unterschied zwischen Mutation und Reassignment. Deshalb schauen wir uns dies nun ebenfalls kurz an:<\/p>\n<h4>Primitive Datentypen vs. Objekte<\/h4>\n<p><strong><em>Call-by-Value<\/em> vs. <em>Call-by-Reference<\/em>:<\/strong><\/p>\n<ul>\n<li><strong>Primitive Datentypen:<\/strong> In JavaScript werden primitive Typen wie Zahlen, Strings und Booleans immer als <em>Call-by-Value<\/em> \u00fcbergeben.<br \/>\n\u21fe Ver\u00e4nderung einer Kopie der Daten<\/li>\n<li><strong>Objekte:<\/strong> Im Gegensatz dazu werden Objekte, einschlie\u00dflich Arrays und Funktionen, als <em>Call-by-Reference<\/em> \u00fcbergeben. Hierbei wird nicht der eigentliche Wert \u00fcbergeben, sondern eine Referenz auf das Objekt.<br \/>\n\u21fe Ver\u00e4nderung der Originalen Daten<\/li>\n<\/ul>\n<h4>Mutation vs. Reassignment<\/h4>\n<p><strong>Mutation von Objekten:<\/strong><\/p>\n<ul>\n<li>Bei der Mutation wird der Zustand eines Objekts innerhalb einer Funktion ver\u00e4ndert. Wenn beispielsweise eine Funktion ein Objekt erh\u00e4lt und eine seiner Eigenschaften \u00e4ndert, wird diese \u00c4nderung auch au\u00dferhalb der Funktion reflektiert. Dies liegt daran, dass die Funktion mit einer Referenz auf das Objekt und nicht mit einer unabh\u00e4ngigen Kopie arbeitet.<\/li>\n<\/ul>\n<p><strong>Reassignment:<\/strong><\/p>\n<ul>\n<li>Reassignment (Neuzuweisung) bezieht sich darauf, dass innerhalb einer Funktion eine neue Zuweisung an eine Variable erfolgt, die ein Objekt referenziert. Diese Neuzuweisung hat jedoch keinen Einfluss auf die urspr\u00fcngliche Referenz au\u00dferhalb der Funktion. Das bedeutet, dass eine Funktion, die eine Objektreferenz als Parameter erh\u00e4lt und diese Referenz auf ein neues Objekt umleitet, nur die lokale Kopie innerhalb ihres eigenen Scopes ver\u00e4ndert.<\/li>\n<\/ul>\n<h3>Vergleich mit anderen Programmiersprachen (C++)<\/h3>\n<p>In C++ ist <em>Call-by-Reference<\/em> <a href=\"https:\/\/de.wikibooks.org\/wiki\/C%2B%2B-Programmierung\/_Weitere_Grundelemente\/_Referenzen\">expliziter und deutlicher<\/a> definiert. Wenn eine Funktion einen Parameter als <strong>Referenz (&amp;)<\/strong> erh\u00e4lt, bedeutet dies, dass sie direkt auf die \u00fcbergebene Variable zugreift und sie ver\u00e4ndern kann. \u00c4nderungen an dieser Variablen innerhalb der Funktion spiegeln sich somit direkt in der urspr\u00fcnglichen Variable wider.<br \/>\nHieraus entstehen folgende Unterschiede:<\/p>\n<ul>\n<li><strong>Explizit vs. Implizit:<\/strong> In C++ ist <em>Call-by-Reference<\/em> explizit &#8211; man sieht an der Funktionsdefinition, ob eine Referenz \u00fcbergeben wird. In JavaScript ist dies implizit: Objekte werden automatisch als Referenzen ihrer Werte \u00fcbergeben.<\/li>\n<li><strong>Direkte Manipulation vs. Referenzmanipulation:<\/strong> In C++ manipuliert man direkt die Variable, die \u00fcbergeben wird, nicht deren Kopie. In JavaScript manipuliert man das Objekt, auf das die \u00fcbergebene Referenz zeigt.<\/li>\n<li><strong>Effizienz:<\/strong> Direkte Manipulation ist vor allem bei gro\u00dfen Datenmengen effizienter, da bei der indirekten Manipulation diese Daten zuerst kopiert werden m\u00fcssen, was zus\u00e4tzlichen Speicherplatz und Verarbeitungszeit erfordert<\/li>\n<li><strong>Datentypen:<\/strong> In C++ kann jeder Datentyp (primitive und benutzerdefinierte Typen) per Referenz \u00fcbergeben werden. In JavaScript betrifft dies haupts\u00e4chlich Objekte.<br \/>\nKontrolle und Sicherheit: C++ gibt dem Programmierer mehr Kontrolle und Verantwortung, was zu leistungsf\u00e4higeren, aber auch potenziell gef\u00e4hrlicheren Code f\u00fchren kann.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Fazit<\/h2>\n<p>Nun verstehst du die Unterschiede zwischen <em>Call-by-Value<\/em> und <em>Call-by-Reference<\/em>, was eine wesentliche Grundlage f\u00fcr die fehlerfreie Softwareentwicklung ist und die Verst\u00e4ndnisse \u00fcber Datenfl\u00fcsse vertieft. Dieses Wissen erm\u00f6glicht es dir nicht nur, potenzielle Fehler in Ihren Programmen zu vermeiden, sondern auch metaphorisch gesprochen, das &#8222;Rezept&#8220; deiner Anwendung zu bewahren \u2013 und so sicherzustellen, dass deine Freunde, nicht unerwartet die Zutaten deines digitalen &#8222;Kuchens&#8220; ver\u00e4ndern.<br \/>\nFalls dich dieser Artikel inspiriert hat und du dich f\u00fcr PHP oder JavaScript Programmierung interessierst, dann nutze die Gelegenheit und bewirb dich jetzt bei <a href=\"https:\/\/www.clickstorm.de\/jobs\/bewerbung\/\">clickstorm GmbH<\/a>. Wir freuen uns darauf, mehr \u00fcber dich und deine Programmierleidenschaft zu erfahren!<\/p>\n<p><a href=\"https:\/\/www.clickstorm.de\/jobs\/bewerbung\/\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5820 size-full\" src=\"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/join-now.gif\" alt=\"Join Clickstorm now\" width=\"360\" height=\"202\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JavaScript (JS), als eine vielseitige und dynamische Sprache, stellt zwei Kernkonzepte f\u00fcr die Daten\u00fcbergabe in Funktionen bereit: Call-by-Value und Call-by-Reference. Diese Konzepte sind entscheidend f\u00fcr das Verst\u00e4ndnis, wie die Sprache [&hellip;]<\/p>\n","protected":false},"author":17,"featured_media":5773,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[137,138],"tags":[45,224,77],"class_list":["post-5772","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-frontend","category-tools","tag-entwicklung","tag-javascript","tag-tutorial"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Call-by-Value vs. Call-by-Reference in JavaScript - clickstorm Blog<\/title>\n<meta name=\"description\" content=\"Du bist auf der Suche nach einer einfachen Erkl\u00e4rung f\u00fcr Call-by-Value und Call-by-Reference in JavaScript? Dann bist du hier genau richtig!\" \/>\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.clickstorm.de\/blog\/call-by-reference-value-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Call-by-Value vs. Call-by-Reference in JavaScript - clickstorm Blog\" \/>\n<meta property=\"og:description\" content=\"Du bist auf der Suche nach einer einfachen Erkl\u00e4rung f\u00fcr Call-by-Value und Call-by-Reference in JavaScript? Dann bist du hier genau richtig!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"clickstorm Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/de-de.facebook.com\/clickstorm\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-02T07:14:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/BlogTitleCall-By-Value-Reference-e1705310876566.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1239\" \/>\n\t<meta property=\"og:image:height\" content=\"595\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Heiko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@clickstorm_gmbh\" \/>\n<meta name=\"twitter:site\" content=\"@clickstorm_gmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Heiko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/\"},\"author\":{\"name\":\"Heiko\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#\\\/schema\\\/person\\\/fc26e6738ef98bed66e619380990701b\"},\"headline\":\"Call-by-Value vs. Call-by-Reference in JavaScript\",\"datePublished\":\"2024-04-02T07:14:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/\"},\"wordCount\":1131,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/BlogTitleCall-By-Value-Reference-e1705310876566.png\",\"keywords\":[\"Entwicklung\",\"JavaScript\",\"Tutorial\"],\"articleSection\":[\"Frontend\",\"Tools\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/\",\"url\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/\",\"name\":\"Call-by-Value vs. Call-by-Reference in JavaScript - clickstorm Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/BlogTitleCall-By-Value-Reference-e1705310876566.png\",\"datePublished\":\"2024-04-02T07:14:34+00:00\",\"description\":\"Du bist auf der Suche nach einer einfachen Erkl\u00e4rung f\u00fcr Call-by-Value und Call-by-Reference in JavaScript? Dann bist du hier genau richtig!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/BlogTitleCall-By-Value-Reference-e1705310876566.png\",\"contentUrl\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/BlogTitleCall-By-Value-Reference-e1705310876566.png\",\"width\":1239,\"height\":595,\"caption\":\"Titelbild des Blogbeitrags Call-By-Value \\\/-Reference in JavaScript\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/call-by-reference-value-javascript\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Call-by-Value vs. Call-by-Reference in JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/\",\"name\":\"clickstorm Blog\",\"description\":\"Neuigkeiten rund um Webentwicklung\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#organization\",\"name\":\"clickstorm GmbH\",\"url\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/logo.svg\",\"caption\":\"clickstorm GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/de-de.facebook.com\\\/clickstorm\\\/\",\"https:\\\/\\\/x.com\\\/clickstorm_gmbh\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCEaU1eUbug6OiI4uU6vA-cA\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/#\\\/schema\\\/person\\\/fc26e6738ef98bed66e619380990701b\",\"name\":\"Heiko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8722df6500534a4b1a32e135440c947ac0cb7ef15681b518b1a765a47c610629?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8722df6500534a4b1a32e135440c947ac0cb7ef15681b518b1a765a47c610629?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8722df6500534a4b1a32e135440c947ac0cb7ef15681b518b1a765a47c610629?s=96&d=mm&r=g\",\"caption\":\"Heiko\"},\"url\":\"https:\\\/\\\/www.clickstorm.de\\\/blog\\\/author\\\/heiko\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Call-by-Value vs. Call-by-Reference in JavaScript - clickstorm Blog","description":"Du bist auf der Suche nach einer einfachen Erkl\u00e4rung f\u00fcr Call-by-Value und Call-by-Reference in JavaScript? Dann bist du hier genau richtig!","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.clickstorm.de\/blog\/call-by-reference-value-javascript\/","og_locale":"de_DE","og_type":"article","og_title":"Call-by-Value vs. Call-by-Reference in JavaScript - clickstorm Blog","og_description":"Du bist auf der Suche nach einer einfachen Erkl\u00e4rung f\u00fcr Call-by-Value und Call-by-Reference in JavaScript? Dann bist du hier genau richtig!","og_url":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/","og_site_name":"clickstorm Blog","article_publisher":"https:\/\/de-de.facebook.com\/clickstorm\/","article_published_time":"2024-04-02T07:14:34+00:00","og_image":[{"width":1239,"height":595,"url":"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/BlogTitleCall-By-Value-Reference-e1705310876566.png","type":"image\/png"}],"author":"Heiko","twitter_card":"summary_large_image","twitter_creator":"@clickstorm_gmbh","twitter_site":"@clickstorm_gmbh","twitter_misc":{"Verfasst von":"Heiko","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/#article","isPartOf":{"@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/"},"author":{"name":"Heiko","@id":"https:\/\/www.clickstorm.de\/blog\/#\/schema\/person\/fc26e6738ef98bed66e619380990701b"},"headline":"Call-by-Value vs. Call-by-Reference in JavaScript","datePublished":"2024-04-02T07:14:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/"},"wordCount":1131,"commentCount":0,"publisher":{"@id":"https:\/\/www.clickstorm.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/BlogTitleCall-By-Value-Reference-e1705310876566.png","keywords":["Entwicklung","JavaScript","Tutorial"],"articleSection":["Frontend","Tools"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/","url":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/","name":"Call-by-Value vs. Call-by-Reference in JavaScript - clickstorm Blog","isPartOf":{"@id":"https:\/\/www.clickstorm.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/#primaryimage"},"image":{"@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/BlogTitleCall-By-Value-Reference-e1705310876566.png","datePublished":"2024-04-02T07:14:34+00:00","description":"Du bist auf der Suche nach einer einfachen Erkl\u00e4rung f\u00fcr Call-by-Value und Call-by-Reference in JavaScript? Dann bist du hier genau richtig!","breadcrumb":{"@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/#primaryimage","url":"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/BlogTitleCall-By-Value-Reference-e1705310876566.png","contentUrl":"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2024\/01\/BlogTitleCall-By-Value-Reference-e1705310876566.png","width":1239,"height":595,"caption":"Titelbild des Blogbeitrags Call-By-Value \/-Reference in JavaScript"},{"@type":"BreadcrumbList","@id":"https:\/\/www.clickstorm.de\/blog\/call-by-reference-value-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.clickstorm.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Call-by-Value vs. Call-by-Reference in JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/www.clickstorm.de\/blog\/#website","url":"https:\/\/www.clickstorm.de\/blog\/","name":"clickstorm Blog","description":"Neuigkeiten rund um Webentwicklung","publisher":{"@id":"https:\/\/www.clickstorm.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.clickstorm.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.clickstorm.de\/blog\/#organization","name":"clickstorm GmbH","url":"https:\/\/www.clickstorm.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.clickstorm.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2017\/11\/logo.svg","contentUrl":"https:\/\/www.clickstorm.de\/blog\/wp-content\/uploads\/2017\/11\/logo.svg","caption":"clickstorm GmbH"},"image":{"@id":"https:\/\/www.clickstorm.de\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/de-de.facebook.com\/clickstorm\/","https:\/\/x.com\/clickstorm_gmbh","https:\/\/www.youtube.com\/channel\/UCEaU1eUbug6OiI4uU6vA-cA"]},{"@type":"Person","@id":"https:\/\/www.clickstorm.de\/blog\/#\/schema\/person\/fc26e6738ef98bed66e619380990701b","name":"Heiko","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/8722df6500534a4b1a32e135440c947ac0cb7ef15681b518b1a765a47c610629?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8722df6500534a4b1a32e135440c947ac0cb7ef15681b518b1a765a47c610629?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8722df6500534a4b1a32e135440c947ac0cb7ef15681b518b1a765a47c610629?s=96&d=mm&r=g","caption":"Heiko"},"url":"https:\/\/www.clickstorm.de\/blog\/author\/heiko\/"}]}},"_links":{"self":[{"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/posts\/5772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/comments?post=5772"}],"version-history":[{"count":14,"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/posts\/5772\/revisions"}],"predecessor-version":[{"id":5853,"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/posts\/5772\/revisions\/5853"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/media\/5773"}],"wp:attachment":[{"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/media?parent=5772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/categories?post=5772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.clickstorm.de\/blog\/wp-json\/wp\/v2\/tags?post=5772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}