繁体   English   中英

立即 function 使用 JavaScript ES6 箭头函数

[英]Immediate function using JavaScript ES6 arrow functions

有谁知道如何使用 ES6 箭头语法编写立即数 function?

这是 ES3/5 的实现方式:

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

我尝试了以下操作,但在最后一行出现了unexpected token错误。

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

你可以在这里测试: http://www.es6fiddle.net/hsb8bgu4/

Arrow函数示例中

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

因此,函数调用运算符应在外部。

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

样本: http//www.es6fiddle.net/hsb8s1sj/

这是我的演示代码!

永远记住那个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!`); })(); 

使用ES6箭头功能可实现IIEF!

立即调用的函数表达式

 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM