目录
箭头函数:无名,无function声明,继承上层作用域this,非function实例
匿名函数:无名,有function声明,function实例,可变量提升
对象方法:可省function声明(对象字面量的简写),可变量提升
继承上一层作用域链的this,所以没有原型prototype,所以不能作为构造函数/创建实例
箭头函数:无名,无function声明,继承上层作用域this,非function实例
有function声明的才创造function实例
匿名函数:无名,有function声明,function实例,可变量提升
有function声明的才变量提升
对象方法:可省function声明(对象字面量的简写),可变量提升
// 箭头函数
const arrowFunction = () => {
console.log(this); // this指向定义时的外部作用域的this
};
// 传统匿名函数
const anonymousFunction = function() {
console.log(this); // this的值取决于调用方式
};
const obj = {
arrow: arrowFunction,
anonymous: anonymousFunction,
//对象字面量
literal(){
console.log(this);
}
};
obj.arrow(); // 箭头函数中的this和上文保持一致,window
obj.anonymous(); // 匿名函数中的this取决于调用方式,object
anonymousFunction();// 匿名函数中的this取决于调用方式,window
obj.literal(); // 对象字面量this为object