<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.wiki.leomartin.net/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.wiki.leomartin.net/feed.php">
        <title>DokuWiki jsfn</title>
        <description></description>
        <link>https://www.wiki.leomartin.net/</link>
        <image rdf:resource="https://www.wiki.leomartin.net/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-07T11:46:09+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:chaining_module_method_calls&amp;rev=1454280044&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:creating_and_namespacing_modules&amp;rev=1454276860&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:declaring_functions&amp;rev=1453929743&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:expanding_functionality_through_prototype&amp;rev=1453933825&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:invoking_functions_traditionally&amp;rev=1453932017&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:invoking_instances_through_the_constructor&amp;rev=1453933220&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:next_steps&amp;rev=1454282585&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:passing_arguments_and_setting_module_defaults&amp;rev=1454278911&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:returning_values&amp;rev=1454271134&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:solution_-_social_media_navbar&amp;rev=1454271668&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:understanding_call-and-apply_invocation&amp;rev=1454270001&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:understanding_hoisting_and_variable_scope&amp;rev=1454275710&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:using_anonymous_closures&amp;rev=1457608379&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:using_functions_as_objects&amp;rev=1453932455&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:using_the_arguments_parameter&amp;rev=1454270536&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=jsfn:what_are_functions&amp;rev=1453929573&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.wiki.leomartin.net/lib/tpl/dokuwiki/images/favicon.ico">
        <title>DokuWiki</title>
        <link>https://www.wiki.leomartin.net/</link>
        <url>https://www.wiki.leomartin.net/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:chaining_module_method_calls&amp;rev=1454280044&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-31T23:40:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:chaining_module_method_calls</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:chaining_module_method_calls&amp;rev=1454280044&amp;do=diff</link>
        <description>&lt;- Passing arguments and setting module defaultsNext steps -&gt;
Méthode/technique appelée chaining permettant de travailler avec plusieurs méthodes. c'est une méthode simple qui permet à une méthod d'en appeler une autre.


var name_space = (function)() {
  var DEFAUT = { // phrases par défaut si défaut
    dire: &quot;bonjour&quot;,
    temps: &quot;beau !&quot;
  }
  return {
    parler: function() {
      var mes_arguments = arguments[0] || '';
      var phrase = mes_arguments.say || DEFAUT.dire;
      console.log…</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:creating_and_namespacing_modules&amp;rev=1454276860&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-31T22:47:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:creating_and_namespacing_modules</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:creating_and_namespacing_modules&amp;rev=1454276860&amp;do=diff</link>
        <description>&lt;- Understanding hoisting and variable scopePassing arguments and setting module defaults -&gt;
Modules

	*  Permettent de réutiliser du code au sein de différentes applications (des librairies en quelque sorte.
	*  La première chose que l'on fait lorsque l'on créé un modèle est de lui créér un espace de nom (un namespace : namespacing</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:declaring_functions&amp;rev=1453929743&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-27T22:22:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:declaring_functions</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:declaring_functions&amp;rev=1453929743&amp;do=diff</link>
        <description>&lt;- What are functionsInvoking functions traditionally -&gt;
function déclaration

Déclaration classique avec le mot-clé function, un nom, des arguments et des instructions.

definition expression

Une definition expression est une autre manière de déclarer un fonction :


var additionner = function(a,b) {
  return a+b;
};</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:expanding_functionality_through_prototype&amp;rev=1453933825&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-27T23:30:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:expanding_functionality_through_prototype</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:expanding_functionality_through_prototype&amp;rev=1453933825&amp;do=diff</link>
        <description>&lt;- Invoking instances through the constructorUnderstanding call-and-apply invocation -&gt;
Ajout de méthodes via l'objet prototype de l'objet (un “sous-objet” donc)

	*  prototypal inheritance
	*  signifie que l'on peut baser les fonctionnalités d'un objet sur un autre objet
	*  Chaque objet peut être basé sur un autre (et par matter of fact, chaque objet l'est)</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:invoking_functions_traditionally&amp;rev=1453932017&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-27T23:00:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:invoking_functions_traditionally</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:invoking_functions_traditionally&amp;rev=1453932017&amp;do=diff</link>
        <description>&lt;- Declaring functionsUsing functions as objects -&gt;
invoquer une fonction

On utiliser le terme invoquer (invoke), car certaines fonctions sont anonymes, n'ont pas de nom. On ne peut pas vraiment dire qu'on appelle quelque chose qui n'a pas de nom.

Il existe quatre façons d'invoquer une fonction :</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:invoking_instances_through_the_constructor&amp;rev=1453933220&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-27T23:20:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:invoking_instances_through_the_constructor</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:invoking_instances_through_the_constructor&amp;rev=1453933220&amp;do=diff</link>
        <description>&lt;- Using functions as objectsExpanding functionality through prototype -&gt;
Précédemment : création “manuelle” d“objet.

	*  une fonction peut créer un nouvel objet
	*  en utilisant le mot-clé new
	*  on appelle cela une “constructor invocation”


var Objet = function() {
  var nom, poids;
}

ma_table = new Objet;
ma_table.nom = &quot;Table&quot;;
ma_table.poids = &quot;5.8&quot;;</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:next_steps&amp;rev=1454282585&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-02-01T00:23:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:next_steps</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:next_steps&amp;rev=1454282585&amp;do=diff</link>
        <description>&lt;- Chaining module method calls
	*  javascript : the good parts
	*  eloquent javascript
	*  javascriptjabber.com
	*  javascriptweekly
	*  oreilly fluent</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:passing_arguments_and_setting_module_defaults&amp;rev=1454278911&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-31T23:21:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:passing_arguments_and_setting_module_defaults</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:passing_arguments_and_setting_module_defaults&amp;rev=1454278911&amp;do=diff</link>
        <description>&lt;- Creating and namespacing modulesChaining module method calls -&gt;

var name_space = (function)() {
  return {
    parler: function() {
      console.log(arguments[0].dire);
    }
  }
})();
name_space.parler({ dire: &quot;salut&quot; });


short-circuit evaluation


var name_space = (function)() {
  return {
    parler: function() {
      var mes_arguments = arguments[0] || '';
      console.log(mes_arguments.dire);
    }
  }
})();
name_space.parler(); // oubli ou pas d'arguments</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:returning_values&amp;rev=1454271134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-31T21:12:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:returning_values</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:returning_values&amp;rev=1454271134&amp;do=diff</link>
        <description>&lt;- Using the arguments parameterChallenge - Social media navigation -&gt;
L'instruction return

	*  optionnel (une fonction sans return retournera undefined);
	*  uniquement disponible dans un corps de fonction
	*  peut servir à retourner quelque chose à ce qui l'appelle (ex on peut assigner à une variable ce que retourne une fonction).</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:solution_-_social_media_navbar&amp;rev=1454271668&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-31T21:21:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:solution_-_social_media_navbar</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:solution_-_social_media_navbar&amp;rev=1454271668&amp;do=diff</link>
        <description>&lt;- Challenge - Social media navigationUsing anonymous closures -&gt;

var socialMedia = {
  facebook : 'http://facebook.com/viewsource',
  twitter: 'http://twitter.com/planetoftheweb',
  flickr: 'http://flickr.com/planetotheweb',
  youtube: 'http://youtube.com/planetoftheweb'
};

var socialList = function() {
  var  output = '&lt;ul&gt;', 
    myList = document.querySelectorAll('.socialmediaicons');

  for (var key in arguments[0]) {
    output+= '&lt;li&gt;&lt;a href=&quot;' + socialMedia[key] + '&quot;&gt;' +
      '&lt;img sr…</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:understanding_call-and-apply_invocation&amp;rev=1454270001&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-31T20:53:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:understanding_call-and-apply_invocation</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:understanding_call-and-apply_invocation&amp;rev=1454270001&amp;do=diff</link>
        <description>&lt;- Expanding functionality through prototypeUsing the arguments parameter -&gt;
Call &amp; Apply (indirect invocation)

	*  permet de définir la valeur de l'argument this
	*  Control: this and arguments
	*  Call passe une valeur, Apply un array


var speak = function (what) {
  console.log(this.love)
}
var saySomething = {normal: &quot;meow&quot;, love: &quot;purr&quot;} // ça pourrait être des fonctions en attributs
speak.call(saySomething); // purr</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:understanding_hoisting_and_variable_scope&amp;rev=1454275710&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-31T22:28:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:understanding_hoisting_and_variable_scope</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:understanding_hoisting_and_variable_scope&amp;rev=1454275710&amp;do=diff</link>
        <description>&lt;- Using anonymous closuresCreating and namespacing modules -&gt;
Déterminer le scope des variables

	*  scope : espace ou une variable est accessible
	*  block scope : scope déterminer par des {}
	*  function scope : scope déterminé par les limites d'une fonction. Toute fonction créé par avec le mot-clé</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:using_anonymous_closures&amp;rev=1457608379&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-03-10T12:12:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:using_anonymous_closures</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:using_anonymous_closures&amp;rev=1457608379&amp;do=diff</link>
        <description>&lt;- Solution - Social media navbarUnderstanding hoisting and variable scope -&gt;

var ma_fun = function autre_nom() {
  console.log(&quot;yo&quot;);
}(): // exécution avec le ()

ma_fun();
----
var ma_fun = function() { //fonction anonyme
  console.log(&quot;yo&quot;);
}(): // exécution avec le ()

(function() { //si on a pas besoin du nom
  console.log(&quot;yo&quot;);
})(): // exécution avec le ()</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:using_functions_as_objects&amp;rev=1453932455&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-27T23:07:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:using_functions_as_objects</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:using_functions_as_objects&amp;rev=1453932455&amp;do=diff</link>
        <description>&lt;- Invoking functions traditionallyInvoking instances through the constructor -&gt;
Qu'est-ce qu'un objet ?

	*  variables
	*  listes
	*  objets (flexibles)

À quoi ressemble un objet ?


var info = { //assignement d'un objet
  full_name: &quot;Jean Bon&quot;,
  title : &quot;Chef&quot;,
  links : [
    { blog : &quot;http://kikoo.lol&quot; },
    { twitter: &quot;http://twitter.com/jeanbon&quot; }
  ]
};</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:using_the_arguments_parameter&amp;rev=1454270536&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-31T21:02:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:using_the_arguments_parameter</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:using_the_arguments_parameter&amp;rev=1454270536&amp;do=diff</link>
        <description>&lt;- Understanding call-and-apply invocationReturning values -&gt;
Utile quand on ne sait pas à l'avance combien d'éléments vont être passés.

Le paramètre arguments :

	*  liste de tous les éléments passés
	*  un objet similaire à un tableau (peut donc faire certaines choses comme un array)
		*  index numérique</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=jsfn:what_are_functions&amp;rev=1453929573&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-01-27T22:19:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>jsfn:what_are_functions</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=jsfn:what_are_functions&amp;rev=1453929573&amp;do=diff</link>
        <description>&lt;- Using the exercise filesDeclaring functions -&gt;
fonctions

	*  Définies avec le mot-clé function
	*  Elles doivent être déclarées ou définies
	*  Le nom d'une fonction est optionnel
	*  Le nom peut utiliser $, _, a-z, 0-9 et/ou certains caractères spéciaux
	*  Le nom ne peut pas commencer par 0-9</description>
    </item>
</rdf:RDF>
