一个箭头函数来简洁编写代码。常规 函数和箭头 函数的工作方式相似,但是它们之间存在一些差异。让我们简要地讨论一下这些差异。
let x = (params) => { //代码 };
let x = function functionname(params){ //代码 };
它不能在箭头功能中使用“ this”关键字,而在常规功能中可以不受干扰地使用它。
在以下示例中,在对象“ num ”内部使用了常规(矩形)和箭头(正方形)函数,该对象由len(length)和bre(breadth)属性组成。我们的目标是使用箭头函数找到正方形的面积(len * len),并使用常规 函数找到矩形的面积(len * bre)。但是由于“ this ”关键字在 箭头函数中不起作用,因此将正方形 区域的值返回为“ NaN ”,而使用常规 函数,我们得到了矩形 的确切区域如输出所示。
<html> <body> <script> var num = { len: 12, bre: 13, square:() => { document.write(this.len * this.len); }, rectangle(){ document.write(this.len * this.bre); } }; num.square(); document.write("</br>"); num.rectangle(); </script> </body> </html>
NaN 156
该箭头的功能是不是“ constructible ”,而是“可赎回”这样的关键词“新”,而不能在这里工作常规功能都是“可赎回”和“ constructible ”因此,“新”的关键字在这里工作。
在以下示例中,使用“ new ”关键字将一些参数传递给常规 函数和箭头 函数。但是由于箭头函数不可构造,我们会得到一个错误,而常规函数会得到一个合法的输出。
<html> <body> <script> var word = function(){ document.write(JSON.stringify(arguments)); /// executes '{"0":"Tutorix","1":"Nhooo"}' as output }; new word("Tutorix","Nhooo"); var newword = ()=> { document.write(JSON.stringify(arguments)); //执行“ newword不是构造函数”作为输出 }; new newword("Tutorix","Nhooo"); </script> </body> </html>