箭头函数:
一种定义函数的方式
直接定义函数
const aaa = function () {
}
对象字面量中定义函数
const obj = {
bbb() {
}
}
.ES6中的箭头函数
// const ccc = (参数列表) => {
//
// }
const ccc = () => {
}
箭头函数参数问题
一个参数
const power = num => {
return num * num
}
二个参数
const sum = (num1, num2) => {
return num1 + num2
}
箭头函数代码量问题
一行代码
const mul = (num1, num2) => num1 * num2
console.log(mul(20, 30));
多行代码
const test = () => {
console.log('Hello World');
console.log('Hello Vuejs');
}
什么时候使用箭头
// setTimeout(function () {
// console.log(this);
// }, 1000)
//
// setTimeout(() => {
// console.log(this);
// }, 1000)
箭头函数中的this是如何查找?
向外层作用域中, 一层层查找this,直到有this的定义。
// const obj = {
// aaa() {
// setTimeout(function () {
// console.log(this); // window
// })
//
// setTimeout(() => {
// console.log(this); // obj对象
// })
// }
// }
//
// obj.aaa()
const obj = {
aaa() {
setTimeout(function () {
setTimeout(function () {
console.log(this); // window
})
setTimeout(() => {
console.log(this); // window
})
})
setTimeout(() => {
setTimeout(function () {
console.log(this); // window
})
setTimeout(() => {
console.log(this); // obj
})
})
}
}
obj.aaa()