一,参数问题
- 基本用法: 无参,无返回值
const fun = (参数列表) => {}
- 放入两个参数
const sum = (num1,num2) => {
return num1 + num2
}
- 放入一个参数(可省略括号)
const power = num => {
return num * num
}
二、函数体代码简写:
- 函数体有多行代码——照常写
const hi = () => {
console.log('hello');
console.log('箭头函数');
}
- 函数体只有一行代码 ——简写
const mul = (num1,num2) => num1 * num2 // {return num1 * num2}
const hel = () => console.log('hello') // {console.log('hello')} 返回undefined
箭头函数使用场景: 当想要将一个函数作为参数传给另一个函数时
eg。
setTimeOut(function(){
},100)
setTimeOut(()=>{
},100)
三、this指向
箭头函数的this: 向外层作用域中一层层查找,直到有this的定义
setTimeOut(function(){
console.log(this) //window
},100)
setTimeOut(()=>{
console.log(this) //window
},100)
const obj = {
aaa(){
setTimeOut(function(){
console.log(this) // window
},100)
setTimeOut(()=>{
console.log(this) // aaa
},100)
}
}
const obj = {
aaa() {
setTimeout(function () {
console.log('yi', this); // window
setTimeout(function () {
console.log('yi1', this); // window
}, 100)
setTimeout(() => {
console.log('yi2', this); // window
}, 100);
}, 100)
setTimeout(() => {
console.log('er', this); // aaa
setTimeout(function () {
console.log('er1', this); // window--
}, 100)
setTimeout(() => {
console.log('er2', this); // aaa
}, 100);
}, 100);
}
}
obj.aaa();