Um objeto JavaScript é um valor composto, que é uma coleção de atributos ou valores nomeados. Ele referencia os valores do atributo através do símbolo "." Quando o valor do atributo é uma função, chamamos de método. Vemos que as cordas também têm propriedades e métodos:
A cópia do código é a seguinte:
var s = "Olá, mundo!";
var word = s.substring (s.IndexOF ("")+1, s.length);
Como uma string não é um objeto, por que ela tem atributos? Enquanto o atributo da string S for referenciado, o JavaScript converterá o valor da string em um objeto chamando o construtor de novas strings. Este objeto herda o método da string e é usado para processar a referência ao atributo. Depois que a referência de atributo for concluída, o objeto recém -criado será destruído (de fato, esse objeto não será criado na implementação, mas todo o processo se parece com esse).
Como strings, números e valores booleanos também têm seus próprios métodos: crie um objeto temporário através dos construtores Número () e Boolean (), e as chamadas para esses métodos são desse objeto temporário. Este objeto temporário é chamado de objeto de wrapper.
Perceber:
A cópia do código é a seguinte:
var s = "teste"; // Declare uma string
s.len = 4; // Defina uma propriedade len para isso
var t = s.len; // Consulte esta propriedade
No momento, quando a produção de t, devemos indefinidos. A segunda linha de código cria um objeto de string temporário e atribui seu valor de atributo LEN a 4 e depois destrói o objeto. A terceira linha de código define um novo atributo através do valor original da string s e tenta ler seu atributo len. Esse atributo naturalmente não existe; portanto, o valor quando T é a saída é indefinido.
Este código mostra que, ao ler valores (ou métodos) de números, strings e valores booleanos, ele se comporta como um objeto, mas ao tentar atribuir valores aos seus atributos, essa operação é ignorada: a modificação ocorre apenas em um objeto temporário e esse objeto temporário não continua sendo preservado.
O objeto temporário criado ao acessar uma propriedade de uma string, número ou booleano é chamado de objeto de wrapper. Ocasionalmente, é usado para distinguir entre valores de string e objetos de string, objetos numéricos, valores booleanos e objetos booleanos.