// 箭头函数就是函数的另外一种写法.
// 回顾之前函数的写法:
// function fn() {}
// fn();
// let fn1 = function() {}
// fn1();
// (function(){})();
// 箭头函数语法:
// () => {}
// 箭头函数的本质就是一个匿名函数
// function() {
// console.log(1234);
// }
// let fn = function() {}
let fn = () => {
console.log(123);
}
fn();
箭头函数的使用注意事项
// 1.由于箭头函数本质上就是一个匿名函数,所以一般会给箭头函数设置一个函数名
// fn就是当前箭头函数的名字,将来可以通过该函数的名字调用箭头函数
// let fn = () => {}
// 2. 箭头函数也可以按照自调用函数的写法调用
// (() => {console.log(123)})();
// (function() {
// console.log(123);
// })()
// 3. () => {} 在箭头函数中()就是用来设置函数的形参
// 31. () => {} 在箭头函数中{}就是函数体
// let fn = (a, b) => {
// console.log(a,b);
// }
// fn(1, 2);
// 4. () => {} 也可以设置返回值
// let fn = () => {
// let a = 'abc';
// return a;
// }
// let res = fn();
// console.log(res);
//5. 在箭头函数中,则()可以省略如果函数有且只有一个形参,不写
// let fn = (a, b) => {
// console.log(a);
// }
// 简写为:
// let fn = a => {
// console.log(a);
// }
// fn(1);
// 6. 在箭头函数中,当函数中只有一行代码的时候,{}可以省略不写,return不写,返回值
// let fn = (a, b) => {
// return a;
// }
// 简写为:
// let fn = (a, b) => a;
// let res = fn(1);
// console.log(res);
// 第一个a是形参
// 第二个a是函数中的返回值
// let fn = a => a;
// let res = fn('abcdddddd');
// console.log(res);
//7. 箭头函数中的this指向 (很重要)
// function fn() {
// // this指向的是window顶级对象
// console.log(this);
// }
// window.fn();
//为甚指向的是window
// 定义的普通函数本质上是给window这个对象上定义的一个函数
// 在调用的时候, window.fn() 只不过window是一个顶级对象可以省略不写
// console.log(window);
//obj对象
//eat方法中的this指向谁?方法的调用者
// let obj = {
// eat: function() {
// console.log(this);
// }
// }
// obj.eat();
//箭头函数中的this
// let fn = () => {
// // this指向的是window
// console.log(this);
// }
// fn();
// 方法中如果用箭头函数表示
// 在箭头函数中不支持this的
// 在箭头函数中this最后都指向了window
// 总结:
// 在方法中或者事件中不要使用箭头函数
let obj = {
userName: '张三',
eat : () => {
console.log(this);
}
}
obj.eat();
//写到最后: 箭头函数就是函数的另外一种写法而已.