Ответ 1
(() => "foobar")() // returns "foobar"
Итак, оператор вызова функции должен быть снаружи.
(() => {
//...
})();
Образец: http://www.es6fiddle.net/hsb8s1sj/
Кто-нибудь знает, как написать немедленную функцию, используя синтаксис стрелок ES6?
Вот пример ES3/5:
(function () {
//...
}());
Я пробовал следующее, но получаю ошибку unexpected token
в последней строке.
(() => {
//...
}());
Вы можете проверить это здесь: http://www.es6fiddle.net/hsb8bgu4/
(() => "foobar")() // returns "foobar"
Итак, оператор вызова функции должен быть снаружи.
(() => {
//...
})();
Образец: http://www.es6fiddle.net/hsb8s1sj/
Вот мои демо-коды!
Всегда помните, что
function_name
+()
===function_caller
/* ES5 */
// normal function
function abc(){
console.log(`Hello, ES5 function!`);
}
abc();
var abc = function xyz(){
console.log(`Hello, ES5 function!`);
};
abc();
// named function
var abc = function xyz(){
console.log(`Hello, ES5 function!`);
}();
// anonymous function
// 1
(function(){
console.log(`Hello, ES5 IIFE!`);
})();
// 2
(function(){
console.log(`Hello, ES5 IIFE!`);
}());
// 3
var abc = function(){
console.log(`Hello, ES5 function!`);
}();
/* ES6 */
// named arrow function
const xyz = () => {
console.log(`Hello, ES6 Arrow Function!`);
};
xyz();
const xyz = (() => {
console.log(`Hello, ES6 Arrow Function!`);
})();
// Uncaught SyntaxError: Unexpected token (
/*
const xyz = (() => {
console.log(`Hello, ES6 Arrow Function!`);
}());
*/
// anonymous arrow function
(() => {
console.log(`Hello, ES6 Arrow Function!`);
})();