Function

Anonymous function expression

虽然匿名函式很好用,但有时在许多callback时会造成难以阅读

setTimeout(function(){    console.log("hello world")}, 3000);

function expression

具名函式有名称会比较好阅读,虽说匿名与具名没有差别,但对于readability很有帮助

setTimeout(function Hello(){    console.log("hello world")}, 3000);

Arrow Function

箭头函式提供更简洁的写法,但要注意Arrow function会指定this

a = 1const func = () =>{    console.log(this.a) //undefined}func()function hello(){    console.log(this.a) //1 RHS全域的a}hello()

IIFE(Imadiately invoked function expression)

function Scope不会被全域变数汙染.立即执行不用使用function Statement
先来看没有使用IIFE的fucntion,下列function不是function statement所以无法执行,语法上就错了不能使用匿名函式
function(a){    console.log("Start")    for(let i = 0; i < a ; i++){        console.log(i)    }    console.log("end-for")}

这边直接使用括弧包起来,要传参数即在最后(parameter)即可
(function(a){    console.log("Start")    for(let i = 0; i < a ; i++){        console.log(i)    }    console.log("end-for")})(5) //Start 1,2,3,4,5 end-for

避免被汙染
var name = "Dennis";(function(){    var name = "Jessica";    console.log(name); //Jessica})()console.log(name); //Dennis

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章