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

any

eine beliebige Variable

Rückgabewert

Typ

Beschreibung

any, null

Kopie der übergebenen Variable

tchmi_clone_object 1:

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