Ceci est une question sur le fonctionnement des getters et setters JavaScript.Utiliser delete dans JavaScript getter/setter pour supprimer le getter/setter
La mise en œuvre de log4j par Mozilla en tant que module JavaScript (implémentation partielle, juste les parties importantes nécessaires pour les cas d'utilisation prévus, comme dans Firefox Sync) contient la définition getter/setter suivante.
Que fait le 'delete' dans le getter/setter pour vous? Qu'est ce que ça veut dire? Il semble avoir l'effet de faire la première utilisation avoir des résultats différents des utilisations suivantes (mais si oui, comment)?
get repository() {
delete Log4Moz.repository;
Log4Moz.repository = new LoggerRepository();
return Log4Moz.repository;
},
set repository(value) {
delete Log4Moz.repository;
Log4Moz.repository = value;
},
Est-ce que o.a serait encore un getter (ou setter) après cela, s'il avait commencé de cette façon? Je suppose que non, maintenant ce serait juste une valeur, non? (Comment pouvez-vous dire si une propriété est un getter/setter ou non? Y at-il un moyen d'inspecter/vider l'objet qui indique quelles propriétés sont des getters/setters?) –