谈谈箭头函数和function的区别

箭头函数和function的区别

  1. 作用域:
    箭头函数指向其定义环境,this的指向无法通过其他方式改变;
    function指向其直接调用者,一般来说最通常的是window对象,对象属性则指向改对象;
  2. 构造函数:箭头函数不能当做构造函数
  3. 参数问题:箭头函数不存在arguments对象,用rest参数代替;
  4. 原型问题:箭头函数不存在原型;
  5. 箭头函数不能使用yield命令,因此箭头函数不能用作genertor函数。
  6. 变量和定义提升:
    箭头函数定义函数的时候,需要var(let、const)关键字;let和const不存在变量提升,而var虽然有变量提升却不存在定义上的提升;
    function存在变量和定义的提升。
	// Example
	console.log(a) // Uncaught ReferenceError: Cannot access 'a' before initializatio
	console.log(b) // undefined  变量提升定义不提升
	c() // 'c' 变量和定义提升
	const a = () => {}
	var b = () => {}
	function c() { console.log('c') }
	```

你可能感兴趣的:(谈谈箭头函数和function的区别)