From a065e04d529da1d847b5062a12c46d916408bf32 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 21:46:22 -0500 Subject: update based on https://github.com/mdn/yari/issues/2028 --- .../objets_globaux/object/count/index.html | 42 ------ .../objets_globaux/object/eval/index.html | 47 ------- .../objets_globaux/object/getnotifier/index.html | 53 ------- .../objets_globaux/object/nosuchmethod/index.html | 76 ---------- .../objets_globaux/object/observe/index.html | 154 --------------------- .../objets_globaux/object/parent/index.html | 42 ------ .../objets_globaux/object/unobserve/index.html | 103 -------------- .../objets_globaux/object/unwatch/index.html | 70 ---------- .../objets_globaux/object/watch/index.html | 150 -------------------- 9 files changed, 737 deletions(-) delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/count/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/eval/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/getnotifier/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/observe/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/parent/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/unobserve/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/unwatch/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/watch/index.html (limited to 'files/fr/web/javascript/reference/objets_globaux/object') diff --git a/files/fr/web/javascript/reference/objets_globaux/object/count/index.html b/files/fr/web/javascript/reference/objets_globaux/object/count/index.html deleted file mode 100644 index 03dfa86bde..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/count/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Object.prototype.__count__ -slug: Web/JavaScript/Reference/Objets_globaux/Object/count -tags: - - JavaScript - - Object - - Obsolete - - Propriété - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.count ---- -
{{JSRef}}{{Non-standard_Header}}{{obsolete_header("gecko2")}}
- -

La propriété __count__ était utilisée pour compter les propriétés énumérables d'un objet mais a été retiréee.

- -

Syntaxe

- -
obj.__count__
- -

Exemples

- -
{ 1: 1 }.__count__              // 1
-[].__count__                    // 0
-[1].__count__                   // 1
-[1, /* trou */, 2, 3].__count__ // 3
- -

Spécifications

- -

Cette propriété n'appartient à aucune spécification.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.Object.count")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/eval/index.html b/files/fr/web/javascript/reference/objets_globaux/object/eval/index.html deleted file mode 100644 index ae6e095928..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/eval/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Object.prototype.eval() -slug: Web/JavaScript/Reference/Objets_globaux/Object/eval -tags: - - JavaScript - - Méthode - - Object - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Object.eval ---- -
{{JSRef}} {{obsolete_header}}
- -

La méthode Object.eval() permet d'évaluer une chaîne de caractères contenant du code JavaScript dans le contexte de l'objet. Cette méthode a été retirée.

- -

Syntaxe

- -
obj.eval(string)
- -

Paramètres

- -
-
string
-
N'importe quelle chaîne de caractères qui représente une expression JavaScript ou une séquence d'instructions. L'expression peut contenir des variables et des propriétés d'objets existants.
-
- -

Description

- -

La méthode eval ne peut plus être utilisée à partir d'un objet. Il faut utiliser la méthode {{jsxref("eval", "eval")}} à la place.

- -

Spécifications

- -

Cette méthode ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.eval")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/getnotifier/index.html b/files/fr/web/javascript/reference/objets_globaux/object/getnotifier/index.html deleted file mode 100644 index ab7f2e2779..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/getnotifier/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Object.getNotifier() -slug: Web/JavaScript/Reference/Objets_globaux/Object/getNotifier -tags: - - JavaScript - - Méthode - - Object - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Object.getNotifier ---- -
{{JSRef}}{{obsolete_header}}
- -

La méthode Object.getNotifer() est utilisée pour créer un objet qui permet de déclencher des changements (tels que perçus par Object.observe()) de façon synthétique. Cette API a été dépréciée et retirée des navigateurs.

- -

Syntaxe

- -
Object.getNotifier(obj)
- -

Paramètres

- -
-
obj
-
L'objet dont on souhaite récupérer le notificateur (notifier) associé.
-
- -

Valeur de retour

- -

L'objet de notification associé à l'objet passé en argument.

- -

Description

- -

Le notificateur est utilisé pour déclencher des changements qui pourront être observés avec Object.observe().

- -

Spécifications

- -

Proposition de spécification.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.getNotifier")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html b/files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html deleted file mode 100644 index bd87292bc5..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Object.prototype.__noSuchMethod__ -slug: Web/JavaScript/Reference/Objets_globaux/Object/noSuchMethod -tags: - - JavaScript - - Object - - Obsolete - - Propriété - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.noSuchMethod ---- -
{{JSRef}}{{Non-standard_Header}}{{Obsolete_Header("gecko43")}}
- -

La propriété __noSuchMethod__ était utilisée pour faire référence à une fonction qui devait être utilisée lorsqu'on appelait une méthode inexistante d'un objet. Cette fonction n'est plus disponible.

- -

Si __noSuchMethod__ a été abandonnée, la spécification ECMAScript 2015 (ES6) fournit les objets Proxy qui permettent de réaliser ce qui pouvait être fait avec cette propriété (et plus encore).

- -

Syntaxe

- -
obj.__noSuchMethod__ = fun
- -

Paramètres

- -
-
fun
-
Une fonction de la forme
-
-
function (id, args) { . . . }
- -
-
id
-
Le nom de la méthode qui n'est pas définie pour l'objet et qui a été appelée.
-
args
-
Le tableau d'arguments passé à la méthode.
-
-
-
- -

Description

- -

Par défaut, lorsqu'on appelle une méthode qui n'existe pas pour un objet, cela lève une exception {{jsxref("TypeError")}}. Ce comportement peut être modifié en définissant une fonction pour la propriété __noSuchMethod__. Cette fonction prend en compte deux arguments : le premier qui est le nom de la méthode non définie qui a été appelée et le second qui correspond au tableau des arguments passés lors de l'appel. Le deuxième argument est bien un tableau (il hérite de {{jsxref("Array.prototype")}}) et n'est pas un objet semblable à un tableau comme l'objet {{jsxref("Fonctions/arguments","arguments")}}.

- -

Si cette méthode ne peut être appelée, soit parce qu'elle vaut undefined (sa valeur par défaut), soit parce qu'elle a été supprimée ou définie avec une valeur qui n'est pas une fonction, le moteur JavaScript reprendra le comportement par défaut et renverra des exceptions TypeError.

- -

Exemples

- -

Un test simple avec __noSuchMethod__

- -
var o = {
-  __noSuchMethod__: function(id, args) {
-                     console.log(id, '(' + args.join(', ') + ')');
-                    }
-};
-
-o.toto(1, 2, 3);
-o.truc(4, 5);
-o.machin();
-
-// affichera
-// toto (1, 2, 3)
-// truc (4, 5)
-// machin ()
-
- -

Spécifications

- -

Cette propriété ne fait partie d'aucune spécification et a été retirée : voir le {{bug(683218)}}.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.noSuchMethod")}}

-
diff --git a/files/fr/web/javascript/reference/objets_globaux/object/observe/index.html b/files/fr/web/javascript/reference/objets_globaux/object/observe/index.html deleted file mode 100644 index eb0e3ec8c0..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/observe/index.html +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: Object.observe() -slug: Web/JavaScript/Reference/Objets_globaux/Object/observe -tags: - - JavaScript - - Méthode - - Object - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Object.observe ---- -
{{JSRef}}{{obsolete_header}}
- -

La méthode Object.observe() est utilisée afin d'observer de façon asynchrone les modifications apportées à un objet. Cette méthode fournit un flux d'information qui correspondent aux changement apportés à l'objet, dans l'ordre dans lequel ils se sont produits. Cependant, cette API a été dépréciée et retirée des navigateurs. À la place, il est préférable d'utiliser l'objet {{jsxref("Proxy")}}.

- -

Syntaxe

- -
Object.observe(obj, callback[,listeChangements])
- -

Paramètres

- -
-
obj
-
L'objet qu'on souhaite observer.
-
callback
-
La fonction qui est appelée à chaque fois qu'un changement est effectué. Elle est invoquée avec l'argument suivant : -
-
changes
-
Un tableau d'objets dont chaque élément représente une modification. Les propriétés de ces objets sont : -
    -
  • name : Le nom de la propriété qui a été modifiée.
  • -
  • object : L'objet modifié une fois le changement apporté.
  • -
  • type : Une chaîne de caractères qui indique le type de modification qui a eu lieu. Elle peut valoir "add", "update", ou "delete".
  • -
  • oldValue : Propriété présente uniquement pour les types "update" et "delete". Elle correspond à la valeur de l'objet avant la modification.
  • -
-
-
-
-
listeChangements
-
La liste des types de changements qu'on souhaite observer sur l'objet donné avec la fonction de retour donnée. Par défaut, si cet argument n'est pas utilisé, le tableau utilisé sera ["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"].
-
- -

Valeur de retour

- -

L'objet qu'on souhaite observer.

- -

Description

- -

La fonction callback est appelée chaque fois qu'une modification est apportée à obj avec comme argument le tableau listant l'ensemble des modifications, dans l'ordre dans lequel elles se sont produites.

- -

Exemples

- -

Enregistrer les différents types de modifications

- -
var obj = {
-  toto: 0,
-  truc: 1
-};
-
-Object.observe(obj, function(changes) {
-  console.log(changes);
-});
-
-obj.machin = 2;
-// [{name: 'machin', object: , type: 'add'}]
-
-obj.toto = 'coucou';
-// [{name: 'toto', object: , type: 'update', oldValue: 0}]
-
-delete obj.machin;
-// [{name: 'machin', object: , type: 'delete', oldValue: 2}]
-
-Object.defineProperty(objet,'toto', {writable: false});
-// [{name: 'toto', object: <obj>, type: 'reconfigure'}]
-
-Object.setPrototypeOf(obj, {});
-//  [{name: '__proto__',object: <obj>, type: 'setPrototype', oldValue: <prototype>}]
-
-Object.seal(obj);
-// [
-//    {name: 'toto', object: <obj>, type: 'reconfigure'},
-//    {name: 'machin', object: <obj>, type: 'reconfigure'},
-//    {object: <obj>, type: 'preventExtensions'}
-// ]
-
- -

Lier des données

- -
// Un objet représentant un utilisateur
-var utilisateur = {
-  id: 0,
-  nom: 'Brendan Eich',
-  titre: 'Mr.'
-};
-
-// Une fonction de salutation
-function majSalutation() {
-  user.greeting = 'Bonjour, ' + utilisateur.titre + ' ' + utilisateur.nom + ' !';
-}
-majSalutation();
-
-Object.observe(utilisateur, function(changes) {
-  changes.forEach(function(change) {
-    // Pour chaque modification qui porte sur le nom ou le titre
-    // on met à jour la salutation
-    if (change.name === 'nom' || change.name === 'titre') {
-      majSalutation();
-    }
-  });
-});
-
- -

Exemple : Enregistrer des changements personnalisés

- -
// On représente un point sur un plan bidimensionnel
-var point = {x: 0, y: 0, distance: 0};
-
-function setPosition(pt, x, y) {
-  // On effectue un changement personnalisé
-  Object.getNotifier(pt).performChange('reposition', function() {
-    var exDistance = pt.distance;
-    pt.x = x;
-    pt.y = y;
-    pt.distance = Math.sqrt(x * x + y * y);
-    return {exDistance: exDistance};
-  });
-}
-
-Object.observe(point, function(changes) {
-  console.log('Distance modifiée : ' + (point.distance - changes[0].exDistance));
-}, ['reposition']);
-
-setPosition(point, 3, 4);
-// Distance modifiée : 5
- -

Spécifications

- -

Proposition de spécification (straw man proposal).

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.observe")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/parent/index.html b/files/fr/web/javascript/reference/objets_globaux/object/parent/index.html deleted file mode 100644 index dfbda99f34..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/parent/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Object.prototype.__parent__ -slug: Web/JavaScript/Reference/Objets_globaux/Object/Parent -tags: - - JavaScript - - Object - - Obsolete - - Propriété - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.parent ---- -
{{JSRef}}{{Non-standard_Header}}{{Obsolete_Header("gecko2")}}
- -

La propriété __parent__ était utilisée pour pointer vers le contexte d'un objet mais elle a été supprimée.

- -

Syntaxe

- -
obj.__parent__
- -

Description

- -

Pour les objets de plus haut niveau, on aurait eu window par exemple.

- -

Spécifications

- -

Cette propriété ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.parent")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/unobserve/index.html b/files/fr/web/javascript/reference/objets_globaux/object/unobserve/index.html deleted file mode 100644 index 88de52a813..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/unobserve/index.html +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: Object.unobserve() -slug: Web/JavaScript/Reference/Objets_globaux/Object/unobserve -tags: - - JavaScript - - Méthode - - Object - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Object.unobserve ---- -
{{JSRef}} {{obsolete_header}}
- -

La méthode Object.unobserve() est utilisée pour retirer des observateurs placés avec {{jsxref("Object.observe()")}}. Cette méthode et l'API à laquelle elle appartient ont été dépréciées et retirées des navigateurs. À la place, il est préférable d'utiliser l'objet {{jsxref("Proxy")}}.

- -

Syntaxe

- -
Object.unobserve(obj, callback)
- -

Paramètres

- -
-
obj
-
L'objet qu'on souhaite arrêter d'observer.
-
callback
-
La référence vers l'observateur qu'on souhaite arrêter d'appeler à chaque fois qu'une modification est apportée à obj.
-
- -

Valeur de retour

- -

L'objet qui n'est plus observé.

- -

Description

- -

Object.unobserve() doit être appelé après {{jsxref("Object.observe()")}} afin de retirer un observateur d'un objet.

- -

La fonction de rappel (callback) doit être une référence à la fonction et non une fonction anonyme. En effet, c'est cette référence qui sera utilisée pour retirer l'observateur précédemment placé. Appeler Object.unobserve() avec une fonction anonyme n'aura aucun effet, cela ne retirera aucun observateur.

- -

Exemples

- -

Arrêter l'observation un objet

- -
var obj = {
-  toto: 0,
-  truc: 1
-};
-
-var observer = function(changements) {
-  console.log(changements);
-}
-
-Object.observe(obj, observer);
-​
-obj.nouvelleProp = 2;
-// [{name: 'nouvelleProp', object: <obj>, type: 'add'}]
-
-Object.unobserve(obj, observer);
-
-obj.toto = 1;
-// La fonction callback n'a pas été appelée
- -

Utiliser une fonction anonyme

- -
var personne = {
-  name : 'Ahmed',
-  age : 25
-};
-
-Object.observe(personne, function (changements) {
-  console.log(changements);
-});
-
-personne.age = 40;
-// [{name: 'age', object: <obj>, oldValue: 25, type: 'update'}]
-
-Object.unobserve(personne, function (changements) {
-  console.log(changements);
-});
-
-personne.age = 63;
-// [{name: 'age', object: <obj>, oldValue: 40, type: 'update'}]
-// La fonction callback est toujours appelée
-
- -

Specifications

- -

Proposition de spécification (strawman proposal).

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.unobserve")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/unwatch/index.html b/files/fr/web/javascript/reference/objets_globaux/object/unwatch/index.html deleted file mode 100644 index 4863156034..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/unwatch/index.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Object.prototype.unwatch() -slug: Web/JavaScript/Reference/Objets_globaux/Object/unwatch -tags: - - JavaScript - - Méthode - - Non-standard - - Object - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.unwatch ---- -
{{JSRef}}{{Non-standard_header}}
- -
-

Méthode dépréciée ! Ne pas utiliser unwatch() et {{jsxref("Object.prototype.watch", "watch()")}}. En effet, ces deux méthodes n'étaient implémentées qu'avec Gecko et ont été retirées à partir de Firefox 58. De plus, l'ajout de points d'arrêts conditionnels a de graves impacts sur les performances, notamment sur les objets globaux comme window. Il est conseillé d'utiliser les accesseurs et mutateurs ou les proxies.

-
- -

La méthode unwatch() permet de retirer un point d'arrêt conditionnel créé par la méthode {{jsxref("Object.prototype.watch", "watch()")}}.

- -

Syntaxe

- -
obj.unwatch(prop)
- -

Paramètres

- -
-
prop
-
Le nom de la propriété dont on ne veut plus suivre l'état.
-
- -

Valeur de retour

- -

{{jsxref("undefined")}}.

- -

Description

- -

Le débogueur JavaScript possède plusieurs fonctionnalités, y compris celles offertes par cette fonction. Pour plus d'informations sur cet outil, voir le débogueur JavaScript.

- -

Par défaut, tous les objets qui descendent de {{jsxref("Object")}} héritent de cette méthode.

- -
-

Note : unwatch() utilise le nom d'une seule propriété comme paramètre. Ce comportement est expliqué avec la méthode {{jsxref("Object.watch", "watch()")}}.

-
- -

Exemples

- -

Voir {{jsxref("Object.watch", "watch()")}}.

- -

Spécifications

- -

Cette méthode ne fait partie d'aucune spécification. Implémentée avec JavaScript 1.2.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.unwatch")}}

-
- -

Notes de compatibilté

- -

Si on appelle unwatch() sur un objet {{domxref("Document")}}, on aura une exception {{jsxref("TypeError")}} à partir de Firefox 23 ({{bug(903332)}}). Cette régression a été corrigée avec Firefox 27.

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/watch/index.html b/files/fr/web/javascript/reference/objets_globaux/object/watch/index.html deleted file mode 100644 index 5a99dfe28f..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/watch/index.html +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Object.prototype.watch() -slug: Web/JavaScript/Reference/Objets_globaux/Object/watch -tags: - - JavaScript - - Méthode - - Non-standard - - Object - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.watch ---- -
{{JSRef}}{{non-standard_header}}
- -
-

Méthode dépréciée ! Ne pas utiliser watch() et {{jsxref("Object.prototype.unwatch", "unwatch()")}}. En effet, ces deux méthodes n'ont été implémentées qu'avec Gecko et sont dépréciées. Elle sont retirées avec à partir de Firefox 58. De plus, l'ajout de points d'arrêts conditionnels a de graves impacts sur les performances, notamment sur les objets globaux comme window. Il est conseillé d'utiliser les accesseurs et mutateurs ou les proxies. Attention également à ne pas confondre {{jsxref("Object.prototype.watch", "Object.watch")}} et {{jsxref("Object.prototype.observe", "Object.observe")}}.

-
- -

La méthode watch() permet d'appeler une fonction lorsqu'une propriété est affectée.

- -

Syntaxe

- -
obj.watch(prop, handler)
- -

Paramètres

- -
-
prop
-
Le nom d'une propriété d'un objet dont on souhaite surveiller les changements.
-
handler
-
Une fonction à appeler quand la valeur de la propriété est modifiée.
-
- -

Valeur de retour

- -

{{jsxref("undefined")}}.

- -

Description

- -

Cette méthode permet de surveiller les assignations à une propriété appelée prop de l'objet courant, et appelle handler(prop, ancienneValeur, nouvelleValeur) dès que prop est définie et enregistre la valeur de retour dans cette propriété. Un tel point de surveillance peut filtrer (ou rendre null) l'assignation de la valeur, en renvoyant une valeur nouvelleValeur modifiée (ou en renvoyant ancienneValeur).

- -

Si une propriété pour laquelle un point de surveillance avait été défini, celui-ci ne disparait pas. Si la propriété est recréée par la suite, le point de surveillance sera toujours en activité.

- -

Pour retirer un point de surveillance, utilisez la méthode {{jsxref("Object.unwatch", "unwatch()")}}/ Par défaut, la méthode watch est héritée par tous les objets descendant d'Object.

- -

Le débogueur JavaScript a des fonctionnalités similaires à celles fournies par cette méthode, ainsi que d'autres options de débogage. Pour en savoir plus, voir le débogueur JavaScript.

- -

Dans Firefox, handler n'est appelé que pour les assignations par script, pas depuis du code natif. Par exemple, window.watch('location', myHandler) n'appellera pas myHandler si l'utilisateur clique sur un lien vers une cible dans le document courant. Par contre, window.location += '#myAnchor' appellera myHandler :

- -

Exemples

- -

Utiliser watch et unwatch

- -
var o = {p:1};
-o.watch("p",
-   function (id, oldval, newval) {
-      console.log("o." + id + " a été modifiée de " + oldval + " en " + newval);
-      return newval;
-   });
-
-o.p = 2;
-o.p = 3;
-delete o.p;
-o.p = 4;
-
-o.unwatch('p');
-o.p = 5;
-
- -

Ce script affiche la sortie suivante :

- -
o.p a été modifiée de 1 en 2
-o.p a été modifiée de 2 en 3
-o.p a été modifiée de undefined en 4
-
- -

Utiliser watch pour valider les propriétés d'un objet

- -

La méthode watch peut être utilisée pour tester les assignations d'une propriété d'objet. Cet exemple s'assure que toute Personne a un nom valide et un age entre 0 et 200.

- -
Personne = function(name,age) {
-  this.watch("age", Personne.prototype._isValidAssignment);
-  this.watch("nom", Personne.prototype._isValidAssignment);
-  this.nom = nom;
-  this.age = age;
-}
-
-Personne.prototype.toString = function() {
-  return this.nom + ", " + this.age;
-};
-
-Personne.prototype._isValidAssignment = function(id, oldval, newval) {
-  if (id == "nom" && (!newval || newval.length > 30)) {
-    throw new RangeError("nom invalide pour " + this);
-  }
-  if (id == "age"  && (newval < 0 || newval > 200)) {
-    throw new RangeError("âge invalide pour " + this);
-  }
-  return newval;
-}
-
-will = new Personne("Will", 29);
-console.log(will);   // Will, 29
-
-try {
-  will.nom = "";
-} catch (e) {
-  console.log(e);
-}
-
-try {
-  will.age = -4;
-} catch (e) {
-  console.log(e);
-}
-
- -

Ce script affichera la sortie suivante :

- -
Will, 29
-RangeError: nom invalide pour Will, 29
-RangeError: âge invalide pour Will, 29
-
- -

Spécifications

- -

Cette méthode ne fait partie d'aucune spécification. Elle a été implémentée avec JavaScript 1.2.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.watch")}}

-
- -

Notes de compatibilité

- - - -

Voir aussi

- - -- cgit v1.2.3-54-g00ecf