箭头函数内部没有this指向,箭头函数内部this指向只能通过查找作用域链来决定,一旦使用箭头函数当前就不存在作用域链。
下面这样写会报错:
<body>
<script>
let Page = {
id: 123,
init: function() {
document.addEventListener('click', function(e) {
this.todo(e)
})
},
todo: function(type) {
console.log(`事件类型:${type},当前id:${this.id}`);
}
}
Page.init()
</script>
</body>
如果改成下面这样:
<body>
<script>
let Page = {
id: 123,
init: function() {
document.addEventListener('click', (e) => {
this.todo(e)
})
},
todo: function(type) {
console.log(