<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Robusta : Java &#38; RESTful Web Services &#187; ExtJs</title>
	<atom:link href="https://blog.developpez.com/java_rest/pcategory/web-2-0/javascript/extjs/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/java_rest</link>
	<description></description>
	<lastBuildDate>Fri, 24 Dec 2010 11:23:17 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>L&#8217;introspection en Javascript</title>
		<link>https://blog.developpez.com/java_rest/p9178/web-2-0/javascript/extjs/l_introspection_en_javascript</link>
		<comments>https://blog.developpez.com/java_rest/p9178/web-2-0/javascript/extjs/l_introspection_en_javascript#comments</comments>
		<pubDate>Wed, 04 Aug 2010 12:40:26 +0000</pubDate>
		<dc:creator><![CDATA[nicorama]]></dc:creator>
				<category><![CDATA[ExtJs]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Petit article rapide pour donner un exemple d&#8217;introspection, c&#8217;est-à-dire la faculté de récupérer la valeur d&#8217;un attribut, ou d&#8217;exécuter une fonction en connaissant le nom de l&#8217;attribut ou de la fonction. Vite fait : alert(myObject['attributeName']); affiche la valeur de l&#8217;attribut attributeName de l&#8217;objet myObject. alert ( (myObject['functionName'])() ); affiche ce que renvoie la fonction functionName() de myObject. A quoi ca sert ? L&#8217;introspection est courante en Java lorsque l&#8217;on travaille sur les Annotations. En Groovy, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Petit article rapide pour donner un exemple d&rsquo;introspection, c&rsquo;est-à-dire la faculté de récupérer la valeur d&rsquo;un attribut, ou d&rsquo;exécuter une fonction en connaissant le nom de l&rsquo;attribut ou de la fonction.</p>
<h3>Vite fait : </h3>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">alert(myObject['attributeName']);</div></div>
<p>affiche la valeur de l&rsquo;attribut <strong>attributeName</strong> de l&rsquo;objet <strong>myObject</strong>.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">alert ( (myObject['functionName'])() );</div></div>
<p>affiche ce que renvoie la fonction <strong>functionName()</strong> de <strong>myObject</strong>.</p>
<h3>A quoi ca sert ?</h3>
<p>L&rsquo;introspection est courante en Java lorsque l&rsquo;on travaille sur les <a href="http://adiguba.developpez.com/tutoriels/java/tiger/annotations/#L4">Annotations</a>. En <a href="http://ericreboisson.developpez.com/tutoriel/java/groovy/">Groovy</a>, c&rsquo;est la base du <em>metaprogramming </em> et autre &lsquo;magie&rsquo; du langage.</p>
<p>En Javascript, je l&rsquo;utilise surtout pour créer des composants ExtJs :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/* Au passage, voici une façon de créer une Class en Javascript */ <br />
function ComboObject(id, name){ <br />
&nbsp; &nbsp; this.id=id; <br />
&nbsp; &nbsp; this.name=name; <br />
} <br />
&nbsp;<br />
/* Et d'ajouter dynamiquement une fonction */ <br />
ComboObject.prototype.toString = function(){ <br />
&nbsp; &nbsp; return this.name+&quot; (&quot;+this.id+&quot;); &quot;; <br />
}; <br />
&nbsp;<br />
&nbsp;<br />
var o1 = new ComboObject(1, &quot;Jo&quot;); <br />
var o2 = new ComboObject(2, &quot;Jo2&quot;); <br />
var o3 = new ComboObject(3, &quot;Jo3&quot;); <br />
var o4 = new ComboObject(4, &quot;Jo4&quot;); <br />
&nbsp;<br />
var array = [o1, o2, o3, o4]; <br />
&nbsp;<br />
new SimpleCombo( <br />
{ <br />
&nbsp; &nbsp; xtype : 'simple-combo', <br />
&nbsp; &nbsp; model : array, <br />
&nbsp; &nbsp; valueField: 'id', <br />
&nbsp; &nbsp; displayField: 'name' <br />
} <br />
);</div></div>
<p>La machinerie interne de mon SimpleCombo utilise assez simplement l&rsquo;introspection et l&rsquo;on peut déclarer &lsquo;à droite&rsquo; l&rsquo;attribut sur lequel on travail. Le combo affichera l&rsquo;attribut <strong>name </strong>et le formulaire enverra la valeur <strong>id</strong>. Si <strong>displayField </strong>n&rsquo;est pas renseigné, on peut alors exécuter la fonction <strong>toString()</strong>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
