Object.prototype.valueOf()

O método valueOf() retorna o valor primitivo do objeto especificado.

Sintaxe

object.valueOf()

Valor retornado

O valor primitivo do objeto especificado.

Descrição

JavaScript chama o método valueOf para converter um objeto em um valor primitivo. Você raramente precisará chamar o método valueOf por ele mesmo; O JavaScript chamará ele automaticamente quando encontrar um objeto onde um valor primitivo for esperado.

Por padr√£o, o m√©todo valueOf √© herdado por cada objeto descendente de Object. Todo n√ļcleo embutido do objeto sobrescreve esse m√©todo para retornar um valor apropriado. Se um objeto n√£o tem um valor primitivo, valueOf retorna o pr√≥prio objeto.

Voc√™ pode usar valueOf dentro do seu pr√≥prio c√≥digo para converter um objeto embutido, em um valor primitivo. Quando voc√™ criar um objeto customizado, voc√™ pode sobrescrever Object.prototype.valueOf() para chamar um m√©todo customizado ao inv√©s do m√©todo padr√£o  Object.

Sobrescrevendo valueOf para objetos customizados

Você pode criar uma função para ser chamada no lougar do método padrão valueOf. Sua função não pode ter nenhum argumento.

Suponha que você tem um tipo de objeto MyNumberType e você quer criar um método valueOf para ele. O código a seguir atribui uma função definida por usuário para o método valueOf desse objeto:

MyNumberType.prototype.valueOf = function() { return customPrimitiveValue; };

Com o código anterior no lugar, a qualquer hora um objeto do tipo MyNumberType é usado em um contexto onde deve ser representado como um valor primitivo, o JavaScript chama automaticamente a função definida no código anterior.

Um método valueOf de um objeto é geralmente chamado pelo JavaScript, mas você pode chamá-lo se quiser da seguinte maneira:

myNumberType.valueOf()

Nota: Objetos em contexto de string convertidos através do método toString(), o que é diferente de objetos String convertendo para string primiriva utlizando valueOf. Todos os objetos têm uma conversão string, somente se "[object type]". Mas muitos objetos não convertem para number, boolean, or function.

Exemplos

Usando valueOf

function MyNumberType(n) {
    this.number = n;
}

MyNumberType.prototype.valueOf = function() {
    return this.number;
};

var myObj = new MyNumberType(4);
myObj + 3; // 7

Espefica√ß√Ķes

Compatibilidade do browser

BCD tables only load in the browser

Veja também