From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../objets_globaux/object/nosuchmethod/index.html | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html (limited to 'files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html') 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 new file mode 100644 index 0000000000..bd87292bc5 --- /dev/null +++ b/files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html @@ -0,0 +1,76 @@ +--- +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")}}

+
-- cgit v1.2.3-54-g00ecf