Petite Introduction Aux Fonctions JavaScript-II
mardi 31 juillet 2018 - 3 / 65 - 23:12:45 [PM]
// On ne peut non plus l'appeler en différé.
//
//=> inlineF7({a:"Appel différée O"},["Appel difféfrée A"]);
//
// ReferenceError en 61:3: inlineF7 is not defined
// La même définition que ci-dessus sans les parenthèses
// (avant celles terminales).
function inlineF8(){
cl(arguments.length); // 2
cl(arguments);
// Arguments { 0: {}, 1: [], … }
//
// Arguments
// 0: Object { }
// 1: Array []
// callee:
// length: 2
cl(typeof arguments[0], typeof arguments[1]);
// object object
} (inlineF8({},[]));
// Et son appel en différé :
inlineF8({b:"différé oB"},["difféfré aB"])
// 2
// Arguments { 0: {…}, 1: (1) […], … }
//
// Arguments
// 0: Object { b: "différé oB" }
// 1: Array [ "difféfré aB" ]
// callee:
// length: 2
//
// object object
</script>
Une « fonction inline » exécute au moment de sa lecture par le browser, et disparaît près sa lecture,
libérant ainsi la RAM lui affectée et celle occupée par ses variables locales pour autant qu’elles
soient déclarées avec les mots-clés var, let ou const (obligatoire en mode "use strict"). Si on veut
conserver quelque chose de la fonction inline, il faut soit 1. Déclarer cette chose dans une variable
globale, ou 2. Demander à la fonction inline de retourner une valeur qu’on peut conserver dans une
variable, ou 3. Affecter cette valeur à une variable déclarée dans l’espace globale :
<script type="text/javascript">
let gVar;
const rVal = (function(){
gVar = "Variable de l'espace global";
ndGlobVar = "Variable globale (non spécifiée)";
window.wGlobVar = "Variable globale window explicite";
self.sGlobVar = "Variable globale self = window";
this.tGlobVar = "Variable globale this = window";
var vLocVar = "Variable locale var";