Sto usando il framework webgl three.js.
La maggior parte delle classi può essere "clonata" tramite un metodo .clone()
.
Wikipedia sembra essere molto severo quando definisce "clonazione".
In computer science, cloning refers to the making of an exact copy of an object...
Tuttavia, ho riscontrato qualcosa di simile a questo:
const myClass = new Class()
myClass.foo = 'foo'
myClassClone = myClass.clone()
myClassClone.foo === myClass.foo //true
^ questo è quello che mi aspetto di vedere da un "clone".
La documentazione per la libreria non sembra essere coerente però:
Returns a clone of this object and optionally all descendants.
vs.
Return a new material with the same parameters as this material.
Sto lottando con il secondo perché ho riscontrato qualcosa di simile
myClass = new Class()
myClass.foo = 'foo'
myClass.bar = 'bar'
myClone = myClass.clone()
myClone.foo === myClass.foo //true
myClone.bar === myClass.bar //false
A seconda di cosa sono foo e bar, il mio clone può o meno comportarsi come l'originale. Dipende da quelli che sono considerati questi "parametri" ma è ancora un po 'confuso.
Che cosa posso dire di questa situazione.
- Posso usare "(non) deterministico" per descrivere questi metodi
.clone()
? Tutti loro, alcuni di loro? - Hanno un nome appropriato? Questi non restituiscono mai copie esatte degli oggetti poiché hanno
uuid
s, ma uno sembra più "simile a un clone" rispetto all'altro . - quali altre regole e considerazioni potrebbero essere fatte durante la clonazione? La clonazione di listener di eventi allegati potrebbe non essere l'idea migliore.