La cosa no es tan facil.:) El otro dia Manu y yo estubimos un buen rato para
escribir una. Hay que mirar mas factores para determinar si se debe de
asignar o copiar una propiedad. Adem�s ciertas propiedades deben de copiarse
"a mano" al estar ocultas, como __proto__ y __contructor__. Basicamente es,
como el tuyo, en una funcion recursiva.

<code>
 function clone(o,original) {
  if(!original)original=o;
  if (o instanceof Object) {
   var n = new Object();
   for (var p in o) {
    if (o[p] instanceof Object && !(o[p] instanceof MovieClip || o[p]
instanceof Function || o[p]!=original)) {
     n[p] = clone(o[p],original);
    } else {
     n[p] = o[p];
    }
   }
   n.__proto__ = o.__proto__;
   n.__constructor__ = o.__constructor__
   return n;
  }else{
   return o;
  }
 }

// uso
// var nuevo = clone(objeto)
// El segundo parametro es de uso interno
</code>

Yo particularmente veo muy util este sistema. Forma parte de un memento que
escribi� Manu.

un saludo

Joseba Alonso
www.sidedev.net


----- Original Message ----- 
From: "Eva del Campo" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, November 19, 2003 10:00 PM
Subject: Re: [ASNativos] Copiar arrays


this=array??? no tar�a mal si funcionase, je, je
Parece que la mejor soluci�n es crear una funci�n global y listos. Quedar�a
algo as�:
_global.copiarObjeto = function(elObjeto) {
    if (elObjeto instanceof Array) {
        var dupObj = new Array();
    } else {
        var dupObj = new Object();
    }
    for (var i in elObjeto) {
        if (typeof (elObjeto[i]) == "object") {
            dupObj[i] = copiarObjeto(elObjeto[i]);
        } else {
            dupObj[i] = elObjeto[i];
        }
    }
    return dupObj;
}
Gracias a todos

xxxx

Eva

> Pues en lugar de prototype se monta como funci�n y listos... XD
>
> no se si rular� pero weno ... la idea es lo q cuenta XD
>
> function clone(array){
> this = array;
> ...
> }

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

Responder a