mozilla
Vos résultats de recherche

    Object.prototype.__defineSetter__()

    Non standard
    Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

    Obsolète
    Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

    Résumé

    La méthode __defineSetter__ permet de lier une propriété d'un objet à une fonction qui sera exécutée pour toute tentative de définition/changement de cette propriété.

    Syntaxe

    obj.__defineSetter__(prop, fun)

    Paramètres

    prop
    Une chaîne de caractères qui contient le nom de la propriété qu'on souhaite lier à la fonction.
    fun
    Une fonction à appeler pour chaque modification de la propriété. Cette fonction prend la forme suivante :
    function(val) { . . . }
    val
    Un alias pour la variable contenant la nouvelle valeur qu'on souhaite affecter à prop.

    Description

    La méthode __defineSetter__ permet de définir un mutateur sur un objet pré-existant.

    Exemples

    // Méthode non-standard et dépréciée
    
    var o = {};
    o.__defineSetter__('valeur', function(val) { this.uneAutreValeur = val; });
    o.valeur = 5;
    console.log(o.valeur); // undefined
    console.log(o.uneAutreValeur); // 5
    
    
    // Façons standard
    
    // En utilisant l'opérateur set
    var o = { set valeur(val) { this.uneAutreValeur = val; } };
    o.valeur = 5;
    console.log(o.valeur); // undefined
    console.log(o.uneAutreValeur); // 5
    
    // En utilisant Object.defineProperty
    var o = {};
    Object.defineProperty(o, 'valeur', {
      set: function(val) {
        this.uneAutreValeur = val;
      }
    });
    o.valeur = 5;
    console.log(o.valeur); // undefined
    console.log(o.uneAutreValeur); // 5
    

    Spécifications

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

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple (Oui) (Oui) 11 (Oui) (Oui)
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple (Oui) (Oui) (Oui) ? (Oui) (Oui)

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: SphinxKnight, BenoitL, Jeremie, MattouFP, teoli
    Dernière mise à jour par : SphinxKnight,