普通函数
// function fn(str1,str2){
// let msg = str1+str2;
// return msg
// }
// let a = fn('张三丰','会打太极');
// document.write(a);
普通函数可以作为构造函数 */
// let f = new fn();
// console.log(f);
箭头函数
/* => 后面只有一段表达式 代表return 这段表达式 */
/* => 后面有多段表达式 需要使用{} 并且手动return */
/* 箭头函数只有一个参数 ()可以省略不写 多个参数需要加()*/
let fn = (str1,str2) =>{
// let msg = str1+str2;
// return msg
// }
// let a =fn('张无忌','会九阳神功');
// document.write(a);
箭头函数不可以作为构造函数 不然会报错
普通函数的 this 是谁调用指向谁 都没有调用 默认指向 window
箭头函数没有自己的this 箭头函数的this 是上下文环境的this
let obj1 = {
name:'张三',
// fn:function (){
// console.log(this);
// }
fn:()=>{
console.log(this);
}
}
let obj2 = {
name:'李四'
}
// obj1.fn(); /* => obj1 */
obj1.fn(); /* => window */
obj1.fn.call(obj2); /* => window */
普通函数的this可以被call 或 apply 修改
箭头函数的this不会被call 或 apply 修改