gpt4 book ai didi

javascript - 第二个警报框 "Undefined"

转载 作者:行者123 更新时间:2023-11-28 16:08:57 24 4
gpt4 key购买 nike

Possible Duplicate:
Referencing “this” inside setInterval/setTimeout within object prototype methods

第二个警告框显示“未定义”?为什么是这样?

<a id = "clickme">Click Me!</a>
<script>
var a = document.getElementById("clickme");
a.onclick = function(); {
alert(this.innerHTML);
setTimeout( function() {
alert( this.innerHTML );
}, 1000);
};
</script>

最佳答案

因为在 function 中您要传递给 setTimeout,所以 this 不再是 a 元素。它将是 global 对象(浏览器领域中的 window)或严格模式下的 undefined

相反,存储对this的引用;

var a = document.getElementById("clickme");
a.onclick = function(); {
var that = this;

alert(this.innerHTML);
setTimeout( function() {
alert( that.innerHTML );
}, 1000);
};

关于javascript - 第二个警报框 "Undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com