web-dev-qa-db-fra.com

Fonction immédiate à l'aide des fonctions flèches JavaScript ES6

Quelqu'un sait-il comment écrire une fonction immédiate en utilisant la syntaxe de flèche ES6?

Voici la façon de procéder ES3/5:

(function () {
   //...
}());

J'ai essayé ce qui suit mais je reçois un unexpected token erreur sur la dernière ligne.

(() => {
  //...
}());

Vous pouvez le tester ici: http://www.es6fiddle.net/hsb8bgu4/

37
d13

D'après les exemples de fonctions fléchées ,

(() => "foobar")() // returns "foobar" 

Ainsi, l'opérateur d'invocation de fonction doit être à l'extérieur.

(() => {
  //...
})();

Exemple: http://www.es6fiddle.net/hsb8s1sj/

53
thefourtheye

Voici mes codes de démonstration!

Souvenez-vous toujours de cela function_name + () === function_caller

/* ES5 */

// normal function

function abc(){
    console.log(`Hello, ES5's function!`);
}
abc();

var abc = function xyz(){
    console.log(`Hello, ES5's function!`);
};
abc();

// named function

var abc = function xyz(){
    console.log(`Hello, ES5's function!`);
}();


// anonymous function
// 1
(function(){
    console.log(`Hello, ES5's IIFE!`);
})();

// 2
(function(){
    console.log(`Hello, ES5's IIFE!`);
}());

// 3

var abc = function(){
    console.log(`Hello, ES5's function!`);
}();


/* ES6 */

// named arrow function
const xyz = () => {
    console.log(`Hello, ES6's Arrow Function!`);
};
xyz();


const xyz = (() => {
    console.log(`Hello, ES6's Arrow Function!`);
})();


// Uncaught SyntaxError: Unexpected token (

/*
const xyz = (() => {
    console.log(`Hello, ES6's Arrow Function!`);
}());
*/

// anonymous arrow function
(() => {
    console.log(`Hello, ES6's Arrow Function!`);
})();

Using ES6 Arrow Functions realize IIEF!

expression de fonction immédiatement invoquée

let x;

(x = () => {
  console.log(`ES6 ${typeof(x)}`);
})();

// ES6 function

// OR

(() => {
  console.log(`ES6 ${typeof(Symbol)}`);
})();

// ES6 function
9
xgqfrms