Puis-je effectuer les opérations suivantes?javascript function surcharge
function contains(element) {
// if the element is a Vertex object, do this
if (element instanceof Vertex) {
var vertex = element;
for (var index in self.verticies) {
if (self.verticies[index].id == vertex.id) {
return true;
}
}
return false;
}
// else if the element is an Edge object, do this
else if (element instanceof Edge) {
var edge = element;
for (var index in self.verticies) {
if (self.verticies[index].id == edge.id) {
return true;
}
}
return false;
} else {
// shouldn't come here
return false;
}
};
En gros ... Je veux être en mesure d'appeler et le transmettre soit un objet Vertex ou un objet Edge, mais je ne veux pas avoir le code en double. Est-ce que c'est la bonne façon de le faire? De plus, est-ce que je gère correctement la tâche var vertex = element
/var edge = element
? Je veux attribuer element
à un autre objet Vertex/Edge et l'utiliser pour ma recherche. Faites-moi savoir si je dois clarifier.
Merci, Hristo
Si pas être 'element.id' au lieu de' edge.id'? – casablanca
@casablanca: Oui; merci d'avoir attrapé ça. – SLaks
C'était une erreur de copier/coller. Désolé pour ça. Mais merci pour les suggestions. En outre, je ne savais pas que je peux jeter des erreurs JavaScript ... comment cela fonctionne dans un navigateur? Le navigateur affiche-t-il simplement une fenêtre contextuelle? +1 pour une excellente réponse :) – Hristo