我有以下代码:
<html>
<body>
<div>
<button id="but" >Click me</button>
</div>
<script>
var ele = document.getElementById("but");
ele.addEventListener('mousemove', myFunction);
this.model = {
'a': 'A',
'b': 'B'
}
function myFunction(e) {
alert(this.model.a);
}
</script>
</body>
</html>
当我将鼠标悬停在按钮上时会抛出错误,因为我无法访问model.a
。 this
似乎是指DOME元素。如何在该功能中访问this.model
?
答案 0 :(得分:1)
<html>
<body>
<div>
<button id="but" >Click me</button>
</div>
<script>
this.model = {
'a': 'A',
'b': 'B'
}
var ele = document.getElementById("but");
ele.addEventListener('mousemove', e => alert(this.model.a));
</script>
</body>
</html>
'this'在JavaScript中以一种非常奇怪的方式工作,它指向我们调用该函数的对象。我认为你可以使用箭头功能来修复它,因为它们在'this'中有更多的传统行为。
答案 1 :(得分:0)
您可以使用窗口对象。 所以你应该将myFunction改为:
Time.zone