手机版

对JavaScript箭头函数的深刻理解

时间:2021-08-23 来源:互联网 编辑:宝哥软件园 浏览:

JavaScript箭头函数是编写ECMAScript 6中介绍的函数表达式的简单方法。通常,在JavaScript中,可以通过两种方式创建函数:

函数语句。函数表达式。您可以创建如下函数语句:

函数add(num1,num 2){ var RES=num 1 num 2;返回res}var sum=add(7,2);console . log(sum);您也可以使用相同的函数创建函数表达式,如下所示:

var add=function (num1,num 2){ var RES=num 1 num 2;返回res}var sum=add(7,2);console . log(sum);ECMA 2015(或ECMA脚本6)引入了一种更短的语法来编写函数表达式,称为箭头函数。使用箭头函数,您可以将上面的函数表达式写成:

var add=(num1,num 2)={ return num 1 num 2;};

如您所见,用箭头函数编写的函数表达式更短。

箭头函数的基本语法规则

首先,参数应该在括号中传递。您可以使用两个参数创建箭头函数,如下所示:

ar add=(num1,num 2)={ return num 1 num 2;};

如果只传递一个参数,括号是可选的,可以忽略。您可以创建参数的箭头函数,如下所示:

var add=num={ return num * 10};

如果没有参数,则必须有一个空括号——。所以对于没有参数的函数,箭头函数的写法如下:

var add=()={ console . log(' hey foo ')};

如果函数中只有一个表达式或语句:

正文中括号的使用是可选的。使用return语句是可选的。您可以覆盖add函数,而无需在函数体中使用括号和return语句,如下所示:

var add=(num1,num 2)=num 1 num 2;

您也可以使用console语句编写不带参数的函数,如下所示:

var add=()=console . log(' hey ');

返回对象的文本

JavaScript箭头函数也可以返回对象的文字量。唯一的要求是需要将返回的对象括在括号中,如下所示:

var foo=(姓名,年龄)=({姓名:姓名,年龄:年龄})var r=foo('我的猫',22);console . log(r);如您所见,要返回的对象用括号括起来。如果不这样做,JavaScript将无法区分对象文字和函数体。

箭头功能支持静止参数

JavaScript箭头函数支持另一个ES6函数:rest参数。您可以在arrow函数中使用rest参数,如以下代码所示:

var add=(num1,num2,rest param)={ console . log(rest param . length);var结果=num1 num2返回结果;}var r=add(67,8,90,23);console . log(r);在本例中,当您对rest参数使用arrow函数时,输出将是2和75,因为传递的额外参数数是2,num1和num2的总和是75。

箭头函数支持默认参数

此外,JavaScript箭头函数还支持另一个ES6函数:默认参数。这里详细介绍了默认参数。您可以使用箭头函数中的默认参数,如下所示:

var add=(num1=9,num 2=8)={ var result=num 1 num 2;返回结果;} var r=add();console . log(r);在上面的代码中,箭头函数中有默认参数。在调用这个函数时,我们没有传递任何值,由于默认参数的存在,输出将是17。

箭头函数中的“这个”是如何工作的?

箭头函数没有自己的这个值。箭头函数中的这个值总是继承自封闭范围。在JavaScript中,每个函数都有自己的这个值,具体取决于代码调用函数的方式。请仔细查看下面列出的代码:

var Cat={name: 'mew ',canrun : function(){ console . log(this)var foo=()={ console . log(this)} foo();}};这里,cat是一个对象文字,包括:

属性名。该方法可以运行。在canRun方法中,我们创建了一个箭头函数foo,并给出了它的值。由于箭头函数没有自己的这个值,它将从周围的函数中获得,因此您将获得:

可以看到,这个值在canRun方法和arrow函数foo中是相同的。arrow函数从继承范围中获取该值。如果您对此不清楚,请记住以下两条规则:

使用object.method在方法中获取一个有意义的对象作为该值。对于任何其他要求,使用arrow函数,因为该函数没有自己的这个值,它将继承封闭范围的这个值。使用箭头函数的限制

应用箭头功能时应注意的一些限制:

箭头函数没有参数对象。arrow函数不能与新运算符一起使用,因此不能用作构造函数。Arrow函数没有原型属性。如果您尝试使用箭头函数作为构造函数,您将会得到一个异常。请参见以下代码:

var foo=(姓名、年龄)={姓名=姓名、年龄=年龄};var f1=new foo('cat ',6);代码试图通过使用arrow function foo作为构造函数来创建对象f1,而JavaScript抛出了以下异常:

此外,当您尝试输出arrow函数的原型值时,您将得到未定义的输出:

var foo=(姓名、年龄)={姓名=姓名、年龄=年龄};console . log(foo . prototype);这是因为arrow函数没有原型属性。请记住:虽然arrow函数为您提供了编写函数表达式的简单方法,但它没有自己的这个值,不能用作构造函数。

简易JavaScript第6部分:个箭头函数

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:对JavaScript箭头函数的深刻理解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。