/* 普通函数 */
/* function fn(){
return 123
}
let a = fn();
console.log(a); */
/* function fn(str){
let msg = str + 'hello'
return msg
}
let a = fn('张三丰') */
/* =>箭头函数后面只有一段表达式代表 return 返回 */
/* let fn = () => 123;
let a = fn();
console.log(a); */
/* 箭头函数只有一个参数()可以省略不写 */
/* 普通函数可以作为构造函数,箭头函数不能作为构造函数不然会报错 */
let fn = (str) =>{
let msg = str +'hello'
return msg
}
let a = fn('张无忌')
console.log(a);
/* 普通函数this谁调用就是谁的,箭头函数没有自己的this,箭头函数的this是上下文环境的this */
/* let obj1 = {
name:"张三",
fn:function(){
console.log(this)
}
}
let obj2 = {
name:"李四",
} */
/* 普通函数的this可以被call 或apply修改 */
/* obj1.fn.call(obj2) */
/* 一个参数都没有箭头不能省略 */
let obj1 = {
name:"张三",
fn:()=>{
/* 目前的环境下的this是window */
console.log(this);
}
}
let obj2 = {
name:"李四",
}
obj1.fn()/* this指向window 当前上下文环境
箭头函数的this不会被call 或者apply 修改 */
obj1.fn.call(obj2)
总结
箭头函数:
没有 this
没有 arguments
不能使用 new 进行调用