箭头函数

es6箭头函数
箭头函数()=>{}
面试:箭头函数与普通函数区别?

  1. 语法区别
  2. this不同:普通函数this永远指向运行时调用this,谁调用指向谁, 但箭头函数没有自己this,指定父级有function的this,但如果父级没有function继续往上找
  3. 是否有arguments:普通函数是有arguments, 箭头函数没有
  4. 是否能实例化, 普通函数可以实例化,箭头函数不行

如何定义一个普通函数?
定义1:函数声明方式
特点:在定义前后位置都可以调用,因为函数声明有函数提升的作用

console.log('函数声明前',sum(20,66))
function 函数名(参数1,参数2,参数3){}
function sum(a,b){
    return a + b
}
console.log('函数声明后',sum(20,66))

定义2:函数表达式
特点:函数表达式只能先定义后调用

let 变量名 = function(参数1,参数2,参数3){};
let sum=function result(a,b){  //result可以加,不能调用
    return a + b
}
console.log('函数表达式',sum(88,66))

如何定义箭头函数?
箭头函数this指向

(参数1,参数2,参数3)=>{}
var obj = {
 username:"1906A",
     sum:function(){
        console.log("箭头函数this:",this)  //用箭头函数this指向window, 不是箭头函数就是指向当前对象obj,找父级
        return a + b;
      }
}
obj.sum()
console.log('箭头函数结果',obj.sum())
或者:
var sum=(a, b)=>{
      console.log("this",this)   //现在没有区别
      return a + b;
}
 var result = sum(10,20)  //箭头函数不能实例化
 console.log('箭头函数结果',result)

普通函数this指向

function sum(a, b) {
    console.log("this",this)  //如果没有创建不实例化 var result = sum(10,20) this指向window,  如果创建实例化 var result = sum(10,20)this指向当前sum
     this.total = a + b;
    //return a + b;
}
 var result = sum(10,20)
 console.log('函数声明后',result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值