【发布时间】:2019-01-19 19:34:57
【问题描述】:
我正在尝试重用 year 变量的输出。 稍后我将需要在多个函数中重用更新后的值 [基于 hashchange]。 它在浏览器控制台中显示正确的值,但它不显示在浏览器中。
<html>
<body>
<p></p>
<a href="#2018-01">1</a>
<a href="#2018-02">2</a>
</body>
<script>
location.hash = '#2019';
showHash();
var p = document.querySelector('p');
p.innerHTML = window.year;
function showHash() {
return year = location.hash;
}
window.onhashchange = showHash;
</script>
</html>
【问题讨论】:
-
year不是对某物的引用;它是一个原始值,因此当您将其复制到p.innerHTML时,year之后会发生什么并不重要——innerHTML不会更新。你应该只做p.innerHTML = yearinsideshowHash. -
在初始化之前你也在调用一个函数
-
@SuperDJ 声明在 JS 中被提升。没关系。
-
@trincot,什么是原始值?我知道它在哈希函数中工作,我只是希望以后能够在其他函数中重用返回值。我不想把所有的函数都粘在 showHash()
-
看我的回答。另见primitive value
标签: javascript hashchange window-object