Javascript 重新加载div不';t如果时间为';从另一个函数调用

Javascript 重新加载div不';t如果时间为';从另一个函数调用,javascript,html,nwjs,Javascript,Html,Nwjs,我有一个时间函数 function hm() { var d = new Date(); var h = ('0'+d.getHours()).substr(-2); var m = ('0'+d.getMinutes()).substr(-2); var str0 = h + ':' + m; return {date: str0, hour: h, minute: m}; } var hm = hm(); var date = hm.date

我有一个时间函数

function hm()
{
    var d = new Date();
    var h = ('0'+d.getHours()).substr(-2);
    var m = ('0'+d.getMinutes()).substr(-2);
    var str0 =  h + ':' + m;

  return {date: str0, hour: h, minute: m};


}



var hm = hm();
var date = hm.date;
var hour = hm.hour;
var minute = hm.minute;
我有一个div

<div id="mytime">Time</div>
它不会像
12:03
12:04
那样更新时间,但是如果我放置
函数hm()
和变量
var hm=hm();var日期=hm日期进入
函数refreshDiv()
阻止它工作

我怎样才能让它工作

编辑: 这是一个nwjs项目

如果我添加
hm=hm()内部
刷新div()
我得到:

 "Uncaught TypeError: object is not a function", source: file:///home/.../index.html (182) 

182为包含的行号
hm=hm()

您不需要存储单个值:

var hm = hm();
var date = hm.date;
var hour = hm.hour;
var minute = hm.minute;
您有一个函数
hm()
:调用它,并立即获取返回对象的值:

document.getElementById('mytimer').innerHTML = 'Time: ' + hm().date;
为什么??让我们使用Chrome开发工具来澄清这一点

因此,您定义了一个函数
hm()
。 当您调用它时,您将得到返回的对象:
{a:0000000000000,b:“test”}
您可以使用

var object = hm(); // Assign the returned value of hm() to object
alert(object.a);   // Alerts value of the field a of object

如果不想分配新变量,请使用
hm().a
。您将节省内存和时间。

只需添加
hm=hm()
inside
refreshDiv()
,因为现在只调用一次。不要使用与函数同名的变量。执行此操作时,您正在删除函数定义。尝试
var thisHm=hm()\@Barmar嘿你救了我一天<代码>var thisHm=hm()工作!我得到了未定义的输出。我发现了错误。正如Barmar指出的,使用不同于函数名的变量修复了它。@kenn为什么要使用变量?你可以得到hm()。数据很好@你是对的,我刚刚试过,效果很好。我只是个初学者。谢谢你的提示。@kenn没问题!要通知某人,请提及他们的姓名,如
@WearyAdventurer
。如果我的解决方案解决了你的问题,你可能会想投票并将这个答案标记为已接受。
var object = hm(); // Assign the returned value of hm() to object
alert(object.a);   // Alerts value of the field a of object