面试题答案
一键面试ES5方式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ES5方式绑定点击事件</title>
</head>
<body>
<button id="btn">点击我</button>
<script>
function handleClick() {
console.log(this.textContent);
}
var btn = document.getElementById('btn');
btn.addEventListener('click', handleClick.bind(btn));
</script>
</body>
</html>
ES6方式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ES6方式绑定点击事件</title>
</head>
<body>
<button id="btn">点击我</button>
<script>
const handleClick = function () {
console.log(this.textContent);
}.bind(document.getElementById('btn'));
document.getElementById('btn').addEventListener('click', handleClick);
</script>
</body>
</html>
在ES6方式中,也可以使用箭头函数结合addEventListener
,不过需要注意箭头函数没有自己的this
,这里使用const btn = document.getElementById('btn');
提前获取按钮元素,在箭头函数中使用btn.textContent
来获取文本内容。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ES6箭头函数方式绑定点击事件</title>
</head>
<body>
<button id="btn">点击我</button>
<script>
const btn = document.getElementById('btn');
btn.addEventListener('click', () => {
console.log(btn.textContent);
});
</script>
</body>
</html>