JavaScript-函数-1

  1. 标准函数
function myFunc(){
	//TODO
}
  1. 箭头函数
let myFunc = () => {
	// TODO
}
箭头函数需要注意,函数体如果使用{},需要加return才能返回
let a = value => value+1;
let b = value => {value + 1};

console.log(a(1)); // 2
console.log(b(1)); // undefined
  1. 区别
    两者this引用的对象不同。
    在标准函数中,this引用的是把函数当成方法调用的上下文对象。粗浅的说,在标准函数中,谁调用该函数,则该行函数的this指向谁。
    在箭头函数中,this引用的是定义箭头函数的上下文。
<!DOCTYPE html>
<html>
  <head>
    <title>test</title>
    <meta charset="utf-8">
  </head>
  <body>
    <script>
      window.color = 'red';
      function func1() {
        console.log(this, this.color);
      }
      let func2 = ()=>{
        console.log(this, this.color);
      }
      let obj = {
        color: 'green'
      }

      obj.func1 = func1;
      obj.func2 = func2;
      obj.func1();  // obj对象 green    输出调用时调用者obj中的color
      obj.func2();  // window对象 red   输出window中的color
    </script>
  </body>
</html>
  1. 修改this的指向
    bind、call、apply都可以修改标准函数的this的指向,但是箭头函数的this继承自定义时的上下文,所以无法修改。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值