JavaScript 中的普通函数与箭头函数?
普通函数与箭头函数
箭头函数用于更简洁地编写代码。普通函数和箭头函数的工作方式类似,但它们之间也有一些区别。让我们简要讨论一下这些区别。
箭头函数语法
let x = (params) => {
// code
};普通函数语法
let x = function functionname(params){
// code
};“this”关键字的使用
箭头函数无法使用“this”关键字,而普通函数可以使用而不会出现任何问题。
示例
在下面的示例中,普通函数(矩形)和箭头函数(正方形)都用在对象“num”内,该对象包含 len(长度)和 bre(宽度)属性。我们的目标是使用箭头函数计算正方形的面积(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
“new”关键字的使用
箭头函数不是“可构造的”而是“可调用的”,因此“new”关键字在这里不起作用,而普通函数既“可调用”又“可构造”,因此“new”关键字在这里起作用。
示例
在下面的示例中,使用“new”关键字将一些参数传递给普通函数和箭头函数。但是,由于箭头函数不是“可构造的”,我们将得到一个错误,而普通函数将得到一个合法的输出。
<html>
<body>
<script>
var word = function(){
document.write(JSON.stringify(arguments));
/// executes '{"0":"Tutorix","1":"Tutorialspoint"}' as output
};
new word("Tutorix","Tutorialspoint");
var newword = ()=> {
document.write(JSON.stringify(arguments));
//executes 'newword is not a constructor' as output
};
new newword("Tutorix","Tutorialspoint");
</script>
</body>
</html>
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP