Conceptuellement, que fait eventsApi()
? Il est privé à Backbone mais utilisé dans 4 méthodes d'événements publics - on()
, once()
, off()
et trigger()
.Evénements - but principal de eventsApi()?
Dans chacun d'eux, si elle renvoie une valeur non-vérité, la méthode l'appelant quittera "early".
Une chose à faire est de déterminer si la seconde partie de la méthode appelante sera exécutée. Si name
n'est pas véridique ou n'est pas un type complexe (chaînes séparées par un objet ou un espace), il retournera un vrai permettant l'exécution de la seconde partie de la méthode.
Quel est l'objectif principal de la fonction eventsApi
, conceptuellement, car j'ai essayé de décrire ce qu'elle fait fonctionnellement/logiquement?
eventsAPI
var eventsApi = function(obj, action, name, rest) {
if (!name) return true;
if (typeof name === 'object') {
for (var key in name) {
obj[action].apply(obj, [key, name[key]].concat(rest));
}
} else if (eventSplitter.test(name)) {
var names = name.split(eventSplitter);
for (var i = 0, l = names.length; i < l; i++) {
obj[action].apply(obj, [names[i]].concat(rest));
}
} else {
return true;
}
};
[Le côlon] (http://backbonejs.org/#Events) est juste une convention utilisée pour le rendre plus descriptif. Certains événements intégrés l'utilisent. Par exemple si vous faites 'model.set ({foo: 'bar'});' backbone va déclencher 'change' et aussi' change: foo'. Mais c'est une fonctionnalité spéciale intégrée dans Backbone.Model, et vous pouvez voir dans la méthode 'set' qu'elle appelle' trigger' pour ces deux cas. De [Documentation d'événements] (http://backbonejs.org/#Events): "Si vous avez un grand nombre d'événements différents sur une page, la convention est d'utiliser des deux-points pour leur espace de nommage:" Sondage: Démarrer "ou" " changer: sélection "." –
Ouais, réponse courte: c'est juste un autre caractère en ce qui concerne l'API Events elle-même. Seuls les espaces séparant 2 noms d'événements ont une signification particulière. –
Il implémente simplement l'interface, rien de vraiment chic - un commentaire un peu loufoque. En fait seulement les deux choses que vous avez mentionnées, les événements séparés par l'espace, et les "cartes d'événements". –