tchmi_clone_object
[ Funktion ]
function tchmi_clone_object(obj: any): any | null;
Klont ein Objekt.
In JavaScript werden einfache Datentypen (wie Booleans oder Zahlen) bei Verwendung kopiert (by value). Ist ein Datentyp jedoch komplex wird eine Referenz genutzt (by reference), so dass eine Manipulation der vermeintlichen Kopie den Ursprungswert mit verändert.
Diese Referenz ist bei Variablen welche auf HTML Elemente oder TcHmi Controls zeigen gewünscht, bei Werten wie zum Beispiel einer SolidColor nicht.
Die Funktion tchmi_clone_object
kann stattdessen genutzt werden, da sie in den meisten Fällen eine Kopie erzeugt. Ausnahmen bilden HTML/SVG Elemente und TcHmi Controls.
Parameter
Name | Typ | Beschreibung |
---|---|---|
obj | eine beliebige Variable |
Rückgabewert
Typ | Beschreibung |
---|---|
Kopie der übergebenen Variable |
Verfügbar ab Version 1.8 |
Beispiel - JavaScript
var myNumber = 42;
var myNumberAssign = myNumber;
var myNumberClone = tchmi_clone_object(myNumber);
myNumber = 23;
TcHmi.Log.debug(
'Original: ' + myNumber +
' Assign: ' + myNumberAssign +
' Clone: ' + myNumberClone); // Original: 23 Assign: 42 Clone: 42
var myColor = {color: 'red'};
var myColorAssign = myColor;
var myColorClone = tchmi_clone_object(myColor);
myColor.color = 'blue';
TcHmi.Log.debug(
'Original: ' + myColor.color +
' Assign: ' + myColorAssign.color +
' Clone: ' + myColorClone.color); // Original: blue Assign: blue Clone: red