点击下面代码中的Click me!
按钮,将引发以下错误:
TypeError:this.create_name不是函数
因为我使用的是事件监听器,所以在show_name
函数this
中实际上是button
。
如何使this
引用test_obj
?
<!DOCTYPE HTML>
<head></head>
<body>
<script>
function Namer() {
this.create_name = function() {
var name = 'John'
return name
}
this.show_name = function() {
console.log(this)
console.log(this.create_name()) }
}
var test_obj = new Namer('John')
var button = document.createElement('button')
button.textContent = 'Click me!'
document.body.appendChild(button)
button.addEventListener('click', test_obj.show_name)
</script>
</body>
</html>
如果我不使用事件侦听器,而将最后一行替换为just:
,则相同的代码将可以正常工作。test_obj.show_name()