// // 原来的函数使用
// let fn = function(a, b) {
//     console.log(a + b);
// }
// fn(4, 6);
// 箭头函数 无function关键字 在函数参数与函数体之间用箭头连接 
let fn = (a, b) => {
    console.log(a + b);
}

fn(1, 2);
// 当函数只有一个形参 小括号可以省略
let fn = a => {
    console.log(a);
}

fn(1);
/*
let fn3 = (m,n)=>{
    return m+n;
};*/
// 上面的只有一条return语句 可以简写为下面的省略大括号
let fn3 = (m, n) => m + n;
console.log(fn3(4, 7));
// 可以给形参设置默认值
let fn3 = (m = 1, n = 5) => m + n;
console.log(fn3(4));

在这里插入图片描述

let fun = x => y => x + y;
let res = fun(5)(6);
console.log(res);
/*
  function fun(x) {
      return function(y) {
          return x+y;
      }
  }
*/

在这里插入图片描述


// 1 箭头函数内部没有arguments
/*
function fn() {
    console.log(arguments);
}
*/
// ... 剩余运算符 
let fn4 = (a, ...arguments) => {
    console.log(arguments); // 数组
}

fn4(1, 2, 3, 4);

在这里插入图片描述

let obj = {
    fn: (function() {
        return function() {
            console.log(this === obj);
        }
    })()
};
obj.fn(); // 对象打点调用,那么函数中的this就是这个对象

在这里插入图片描述

let obj = {
    fn: (function() {
        return function() {
            console.log(this);
        }
    })()
};
obj.fn.call(window); // 普通函数可以通过call去改变this

在这里插入图片描述

//箭头函数的this和执行环境有关,继承上下文 无法通过call/apply/bind改变箭头
// 函数的this
let obj = {
    fn: (function() {
        return () => {
            console.log(this);
        }
    })()
};
obj.fn.call(obj);
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐