面试题答案
一键面试- 普通函数的情况:
在
handleClick
普通函数中,this
指向触发点击事件的DOM元素,即<button id='btn'>
元素。这是因为在DOM事件处理程序中,当使用addEventListener
绑定事件时,普通函数中的this
会自动指向触发事件的元素。 - 箭头函数的情况:
如果将
handleClick
函数改为箭头函数,function handleClick() { console.log(this); }
变为const handleClick = () => console.log(this);
,此时this
指向的是定义箭头函数时所在的作用域中的this
。在这个例子中,定义箭头函数在全局作用域(假设没有在其他函数内部定义),那么this
指向全局对象window
(在浏览器环境中)。箭头函数没有自己的this
,它的this
是从定义时的外层作用域继承而来的。