Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Problème avec instanceof

Envoyé par : Papagrieng

Date : 30/05/2006 15:47

Bonjour à tous !

Je suis relativement nouveau sous Xul. Dans le programme suivant, je lis un triplet à partir d'un fichier RDF. Le problème n'est pas lié au RDF mais à Javascript. "dumpln" effectue un affichage avec dump:

dumpln(target.Value);
if (target instanceof Components.interfaces.nsIRDFLiteral){
  dumpln(target.Value);
}
dumpln(target.Value);

Je ne comprends pas pourquoi, à la première instruction dumpln(target.Value), je lis "undefined" dans la console; et pourquoi à la seconde instruction dumpln(target.value) (juste après le test "instanceof"), je lis la bonne valeur dans la console.

Est-ce que quelqu'un a une explication logique ?

Voici les lignes entières:

var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
                  getService(Components.interfaces.nsIRDFService);
var p1 = rdfService.GetResource("http://www.atosorigin.com/adrien/maP1");
var name = rdfService.GetResource("http://www.atosorigin.com/adrien/rdf#name");
var ds = rdfService.GetDataSource("chrome://e/content/db1.rdf");
var target = ds.GetTarget(p1, name, true);
dumpln(target); //Renvoie [xpconnect wrapped nsIRDFNode]
dumpln(target.Value); //Renvoie undefined
dumpln(target.Value); //Renvoie toujours undefined
if (target instanceof Components.interfaces.nsIRDFLiteral){
  dumpln(target.Value); //Renvoie la bonne valeur
}
dumpln(target.Value); //Renvoie la bonne valeur

# Re: Problème avec instanceof

Envoyé par : thefab

Date : 30/05/2006 15:56

instanceof agit de la même manière qu'un QueryInterface() pour savoir si un objet est d'un certain type.

Si tu fais:

dumpln(target.Value);
target.QueryInterface(Components.interfaces.nsIRDFLiteral);
dumpln(target.Value);

Tu devrais arriver au même résultat.

# Re: Problème avec instanceof

Envoyé par : thefab

Date : 30/05/2006 16:00

http://xulfr.org/xulplanet/mozsdk/rdfque(..) > Recherche Des Cibles > 4ème et 5ème paragraphe pour plus de détail

# Re: Problème avec instanceof

Envoyé par : Papagrieng

Date : 30/05/2006 16:21

Ah bon, d'accord. Il me manquait donc l'interface. Merci !

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.