箭头函数声明
// 声明:
let fun = (a, b) => {
return a + b;
}
// 调用
fun(1, 2) // 3
特点
- 箭头函数 this 指向声明时所在作用域下 this 的值,不会改变
function getNum1 () {
console.log(this.number);
}
let getNum2 = () => {
console.log(this.number);
}
var number = 1;
var obj= {
number: 2
}
getNum1() // 1
getNum2() // 1
getNum1.call(obj) // 2
getNum2.call(obj) // 1 由于箭头的this指向 getNum2所在的区域,全局作用域中,所以始终输出 1
- 如果形参只有一个,则小括号可以省略
- 函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的
let fun = num => num / 100 + '元';
- 箭头函数不能作为构造函数,不能被实例化(会报错)
let Person = (name, age) => {
this.name = name;
this.age = age;
}
let person1 = new Person('张三', 18);
console.log(person1) // Uncaught TypeError: Person is not a construtor
-
不能使用 arguments,(引用了rest 参数,形式为…变量名,用于获取函数的剩余参数,用来代替 arguments)
区别:arguments 是一个对象
rest是一个数组,可以对参数进行filter、map等操作,注意:rest 参数必须是最后一个形参
// 例如
// arguments 参数
function test (arguments) {
return Array.prototype.slice.call(arguments).sort();
}
// rest 参数
const sortNumbers = (...numbers) => numbers.sort();
版权声明:本文为Rainbow1995原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。