前言:作为一名不爱码字的前端,在heightzhang大神的教导下开始码字做笔记总结啦!
此贴内容参考奇舞周刊,用作整理知识点。
1 箭头函数没有prototype,因此没有this。普通函数的prototype指向原型对象。
let a = () => {};
console.log(a.prototype) // undefined
2 箭头函数里this指向继承自外层函数的this。普通函数的this指向调用的对象。
// 箭头函数
(() => {
console.log(this) // window
})()
// 对象调用的函数
let obj = {
f: function () {
console.log(this)
}
}
obj.f() // obj
// 普通函数
function f () {
console.log(this) // window(全局声明的时候,所有声明都会变成window对象的属性)
}