[英]Immediate function using JavaScript ES6 arrow functions
有谁知道如何使用 ES6 箭头语法编写立即数 function?
这是 ES3/5 的实现方式:
(function () {
//...
}());
我尝试了以下操作,但在最后一行出现了unexpected token
错误。
(() => {
//...
}());
你可以在这里测试: http://www.es6fiddle.net/hsb8bgu4/
这是我的演示代码!
永远记住那个
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!`); })();
let x; (x = () => { console.log(`ES6 ${typeof(x)}`); })(); // ES6 function // OR (() => { console.log(`ES6 ${typeof(Symbol)}`); })(); // ES6 function
这是一个简单的例子。
定义箭头 function:
const temp = (x)=> {return x+" world";}
// call it as a function
temp("hello") // output: hello world
要使箭头 function 立即调用:
const temp = ((x)=> {return x+" world";})("hello")
// use it as a variable:
console.log(temp); // output: hello world
// a self-invoking function without params:
const temp = (()=> {return "world";})()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.