怪我咯2017-04-11 12:40:16
function timeValue(time) {
console.log(time)
}
setInterval(function(){
var times=new Date().getTime();
timeValue(times)
},1000)
巴扎黑2017-04-11 12:40:16
你这里的time是一个函数,假如time所在的对象为a,则a.time()执行后返回的是一个定时器,并不是
new Date().getTime()这个时间戳。
而定时器的返回值是一个id
id从1开始递增,你开了向个定时器,id就会是几。
之前没注意到返回的只是个id,于是我测试了一下:
console.log(setInterval(function(){console.log(1);},2000));
console.log(setInterval(function(){console.log(2);},2000));
console.log(setInterval(function(){console.log(3);},2000));
clearInterval(2);
楼主想一秒返回一个时间戳的话,要把你想实现的代码放到定时器里面去。
比如,你可能想每秒修改一下页面中显示的时候,可以这样:
(function(){
var time=setInterval(function(){
document.title=new Date().getTime();
},1000);
}())
天蓬老师2017-04-11 12:40:16
你的需求是·1秒后返回系统时间·吧?姑且算就是这个意思吧。。。
js的函数都是必须立即返回的,不能实现你说的1秒的将来再返回,(或者你写个死循环,把时间卡住1秒,然后reutrn?那浏览器就假死了。。。)
那怎么实现1秒钟后返回某个值呢?
你去蛋糕店定蛋糕,蛋糕要1个小时才能做好,你又不想傻愣愣地等怎么办?你留个电话给他,做好了call你啊!
同样的,你调用某个函数,这个函数在未来才会通知来拿返回值,那你需要事先给他传递个东西用来call你,这个东西就叫callback函数。这种场景,你需要给对方一个callback函数,而不是企图直接通过对方的return语句来返回你需要的东西。
var WHATEVER = {
time: function(callback) {
setTimeout(function(){
callback(new Date().getTime());
}, 1000);
}
};
WHATEVER.time(function(timestamp){
console.log(timestamp);
});