箭头函数与普通函数的区别
// 普通函数
function fun() {
return 100
}
const fn = function () {
return 100
}
// 箭头函数
const fn1 = () => 100
/*
箭头函数
()中定义参数,如果只有一个参数,可以不写括号
{}中写函数体,如果函数体重只有返回值,可以不写return
*/
// 普通函数
let obj = {
name: "小明",
age: 2,
sayName() {
console.log(`我是${this.name}`)
}
}
obj.sayName() // 我是小明
// setTimeout
let obj = {
name: "小明",
age: 2,
sayName() {
setTimeout(function () {
console.log(`我是${this.name}`)
}, 500);
}
}
obj.sayName() // 我是
// setTimeout中this指向window
// 箭头函数
let obj = {
name: "小明",
age: 2,
sayName() {
setTimeout(() => {
console.log(`我是${this.name}`)
}, 500);
}
}
obj.sayName() // 我是小明
/*
箭头函数和普通函数的区别:
1. this指向不同
2. 普通函数,谁调用这个函数,this指向谁
3. 箭头函数,在哪里定义函数,this指向谁
*/