O atributo expando de objetos em JScript é um meio importante de adicionar membros a tipos de referência como Object e Array, mas esse método não funciona para tipos de valor, como
varstr = "string1";
str.método1 = função(){
//fazer algo
};
str.method1();//Haverá um erro aqui. A mensagem de erro (esqueci) é que se str não existir,
tal instrução não será executada. tipos de valor. para convertê-lo em um tipo de referência. Para isso, também existem tipos de valor em JScript. Sua função é mostrada aqui. converta o objeto (em geral) em uma representação de string para que o objeto possa ser restaurado usando a função eval.
Boolean.prototype.box=função(){
retornar novo Booleano(isto);
};
Número.prototype.box=função(){
retornar novo número (este);
};
String.prototype.box=função(){
retornar nova String(isto);
};
Boolean.prototype.unbox=função(){
retornar avaliação(this.toJSON());
};
Número.prototype.unbox=função(){
retornar avaliação(this.toJSON());
};
String.prototype.unbox=função(){
retornar avaliação(this.toJSON());
};box significa encaixotar, unbox significa desembalar. O código de teste é o seguinte:
str = true.box();
alerta(str);
str = str.unbox();
alert(str); Neste ponto, nosso JScript também possui operações de boxe. Quais são os benefícios disso? Vejamos a instrução do início novamente. Neste momento, podemos tratar os três tipos de valor de String, Boolean e Number da mesma forma que Object. Podemos adicionar o atributo expando às variáveis de tipo de valor em tempo de execução. muito conveniente?
A operação de unboxing também é muito simples, basta chamar algo como str.unbox().