箭头函数和普通函数的区别写法:
// 普通函数
function test(a){
return a+1
}
console.log(test(100)) // 101
// 箭头函数
const test = a => a+1 // 其中test是函数名,a是参数.
console.log(test(100)) // 101
// 如果函数体内只有一个语句就可以省略大括号{},多个的话要加上大括号。
// 多个表达式
const test = a => {
console.log('aaa')
return a+1
}
console.log(test(100)) // aaa, 101;
普通函数的this指向问题,代码如下:
const obj = {
name: 'lucy',
sayHi: function(){
console.log(`你好 ${this.name}`)
}
}
obj.sayHi(); // 你好 lucy
// 这里面的普通函数的this指向的是调用函数的对象
箭头函数的this指向问题,代码如下:
const obj = {
name: 'lucy',
sayHi: () => {
console.log(`你好 ${this.name}`)
}
}
obj.sayHi(); // 你好 undefined
// 这是因为在箭头函数当中他没有this的机制,所以说他不会改变this的指向