Je reçois l'idée de base sur this
ne pas être dans un method
quand strict mode
a souligné here, mais il devient un peu érudit, pour être honnête. Ainsi, en plus prosaïques termes:jQuery rappel - violation stricte
J'ai un gestionnaire comme ceci:
$('.myClass').one('keyup', function() {
var $this = $(this);
etc etc
});
Je veux changer à ceci:
function myFunction() {
var $this = $(this);
etc etc
};
$('.myClass1').one('keyup', myFunction);
$('.myClass2').one('keyup', myFunction); etc
Il ne l'aime pas parce que dans strict mode
parce que J'utilise this
en dehors d'une méthode. Je comprends ça.
Cependant, je dois avoir myFunction
séparé au gestionnaire, parce que (1) il est attaché à différentes classes/éléments et (2) J'utilise .off().one('keyup', myFunction)
pour réinitialiser le gestionnaire one
pour différentes classes à différents points.
Alors, comment puis-je avoir une fonction de rappel distincte sans violer l'entreprise this
?
La réponse acceptée à la question vous liez à suggère de remplacer l'instruction de fonction par une expression de fonction. Avez-vous essayé cela? –
Ne pas utiliser le mode strict – Imdad
Il n'y a rien de mal à l'utiliser dans une fonction. Étant donné que les "méthodes" n'appartiennent pas vraiment aux objets (ce ne sont que des propriétés qui font référence à des fonctions définies _par ailleurs, et éventuellement partagées avec d'autres objets), je ne vois pas quelle est l'objection. – nnnnnn