箭头函数和普通函数的区别

Posted Smile沛沛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了箭头函数和普通函数的区别相关的知识,希望对你有一定的参考价值。

箭头函数和普通函数的区别

  • 箭头函数语法上比普通函数更简洁(ES6中每种函数都可以形参赋默认值和使用…剩余运算符)
function fn(x){
  return function(y){
    return x+y
  }
}

let fn = x => y=>x+y
  • 箭头函数中没有this,它里面出现的this从属于所属上下文 (使用call、apply等任何方式都无法改变this指向)
let obj = {
  name:'smileyqp'
}
function fn1(){
  console.log(this)
}
fn1.call(obj)		//this =>  obj

let fn2 = ()=>{
  console.log(this)
}
fn2.call(obj)  //this  => window
  • 箭头函数中没有Arguments类数组,只有基于…arg传递的参数集合(数组)
let fn = (...arg ) =>{
  console.log(arg)		// [10, 20, 30]
}
fn(10,20,30)
  • 箭头函数不能被new执行,因为箭头函数没有this也没有prototype
function Fn (){
  this.X = 100;
}
fn.prototype.getX = function(){}
let f = new Fn;

拓展



JQuery中each方法的原处理思想

以上是关于箭头函数和普通函数的区别的主要内容,如果未能解决你的问题,请参考以下文章

论普通函数和箭头函数的区别以及箭头函数的注意事项不适用场景

论普通函数和箭头函数的区别以及箭头函数的注意事项不适用场景

箭头函数和普通函数的区别

箭头函数与普通函数的区别

箭头函数与普通函数的区别

除了语法,普通函数和箭头函数有啥区别吗? [复制]