--- title: Object.observe() slug: Web/JavaScript/Reference/Global_Objects/Object/observe tags: - JavaScript - Obsoleto - observe translation_of: Archive/Web/JavaScript/Object.observe ---
{{JSRef}} {{obsolete_header}}
O método Object.observe() era usado para observações de mudanças, de forma assíncronas de um objeto. Ele fornecia um fluxo de mudanças na ordem em que elas ocorriam. Porém, está API foi depreciada e removida dos navegadores. Você pode utilizar o objeto {{jsxref("Proxy")}} como alternativa.
Object.observe(obj, callback)
objcallbackchangesname: O nome da propriedade que foi alterada.object: O objeto alterado depois que a mudança foi feita.type: Uma string indicando o tipo de mudança. Pode ser "add", "update", ou "delete".oldValue: Apenas para os tipos "update" e "delete". O valor antes da alteração.acceptList["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"] será usado.O objeto será retornado.
O callback é chamado à cada vez que uma mudança ocorre no obj, com um array contendo todas as mudanças na ordem em que elas ocorreram.
var obj = {
foo: 0,
bar: 1
};
Object.observe(obj, function(changes) {
console.log(changes);
});
obj.baz = 2;
// [{name: 'baz', object: <obj>, type: 'add'}]
obj.foo = 'hello';
// [{name: 'foo', object: <obj>, type: 'update', oldValue: 0}]
delete obj.baz;
// [{name: 'baz', object: <obj>, type: 'delete', oldValue: 2}]
// Um modelo chamado "user"
var user = {
id: 0,
name: 'Brendan Eich',
title: 'Mr.'
};
// Criando uma saudação para o user
function updateGreeting() {
user.greeting = 'Olá, ' + user.title + ' ' + user.name + '!';
}
updateGreeting();
Object.observe(user, function(changes) {
changes.forEach(function(change) {
// Sempre que o name e o title mudarem, o updateGreeting será executado
if (change.name === 'name' || change.name === 'title') {
updateGreeting();
}
});
});
Strawman proposal for ECMAScript 7.
| Recurso | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Suporte Básico | {{CompatChrome("36")}} | {{CompatNo}} | {{CompatNo}} | {{CompatOpera("23")}} | {{CompatNo}} |
| Recurso | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Suporte Básico | {{CompatNo}} | {{CompatChrome("36")}} | {{CompatNo}} | {{CompatNo}} | {{CompatOpera("23")}} | {{CompatNo}} |