El atributo expando de objetos en JScript es un medio importante para agregar miembros a tipos de referencia como Object y Array, pero este método no funciona para tipos de valor, como
var cadena = "cadena1";
str.método1 = función(){
//hacer algo
};
str.method1();//Habrá un error aquí. El mensaje de error (lo olvidé) es que si str no existe,
dicha declaración no se ejecutará. En la programación C#, existen operaciones de boxeo y unboxing. tipos de valor. para convertirlo en un tipo de referencia. Para esto, también hay tipos de valor en JScript. También podemos hacer una operación similar. La operación de toJSON() se muestra aquí. convierte el objeto (en términos generales) en una representación de cadena para que el objeto pueda restaurarse usando la función de evaluación.
Boolean.prototype.box = función(){
devolver nuevo booleano (esto);
};
Número.prototipo.caja = función(){
devolver nuevo número (este);
};
String.prototype.box = función(){
devolver nueva cadena (esta);
};
Boolean.prototype.unbox = función(){
devolver evaluación (this.toJSON());
};
Número.prototipo.unbox = función(){
devolver evaluación (this.toJSON());
};
String.prototype.unbox = función(){
devolver evaluación (this.toJSON());
};box significa encajonar, unbox significa desempaquetar. El código de prueba es el siguiente:
str = verdadero.box();
alerta(cadena);
cadena = cadena.unbox();
alert( str ); En este punto, nuestro JScript también tiene operaciones de boxeo. ¿Cuáles son los beneficios de esto? Veamos la declaración al principio nuevamente. En este momento, podemos tratar los tres tipos de valor: Cadena, Booleano y Número como Objeto. Podemos agregar el atributo expando a las variables de tipo de valor en tiempo de ejecución. muy conveniente?
La operación de unboxing también es muy simple, simplemente llame a algo como str.unbox().