箭头函数 =>

  • Post author:
  • Post category:其他




箭头函数声明

// 声明:
let fun = (a, b) => {
	return a + b;
}
// 调用
fun(1, 2) // 3



特点

  1. 箭头函数 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
  1. 如果形参只有一个,则小括号可以省略
  2. 函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的
let fun = num => num / 100 + '元';
  1. 箭头函数不能作为构造函数,不能被实例化(会报错)
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
  1. 不能使用 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 版权协议,转载请附上原文出处链接和本声明。