始终返回函数值的Javascript变量
Javascript variable that always returns value of function
我很确定我知道这个问题的答案(答案是否定的),但有可能创建一个总是返回函数值而不"调用"变量的变量吗?
我厌倦了我使用的网站上的不活跃警告。我每天都会看几次,但我会把它打开,以防有更新需要查看。它会在15分钟后使用一些javascript自动注销我——令牌不会因cookie过期而无效,我的会话也不会在服务器端删除——它检查的变量称为last_user_action
。
我想使last_user_action
始终指向new Date().getTime();
。
last_user_action = function() { new Date().getTime(); }
如果我可以很容易地将所有对last_user_action
的引用改为last_user_action()
,那就行了,但我做不到。
last_user_action = (function() { return new Date().getTime(); })();
只设置一次值。
就像我说的,我怀疑有没有办法做到这一点,但如果可能的话,我该怎么做?
编辑我现在突然想到,只运行会更容易
window.setInterval(function() { last_user_action = new Date().getTime(); }, 1000 * 60 * 10);
在Chrome的javascript控制台中。
如果你确定它是这样工作的,你可以每分钟使用setInterval来设置值:
setInterval(function(){
last_user_action = new Date().getTime();
},60000)
这不是直接的,但只是定期更新变量是微不足道的。
function updateLastUserAction() {
last_user_action = new Date().getTime(); // or Date.now();
setTimeout(updateLastUserAction, 10000); // run again in 10 seconds
}
updateLastUserAction();
您可以根据自己的需要更改更新周期,因为更新功能非常轻量级,所以您可以经常运行它,这无关紧要。
假设last_user_action
是一个全局变量,这意味着它实际上是window
的一个属性,您可以为该属性定义一个getter。
Object.defineProperty(window, 'last_user_action', {
get: function() {
return new Date().getTime();
}
});
last_user_action; // 1412882205169
last_user_action; // 1412882206490
这通常是个坏主意,但考虑到你在这里进行黑客攻击,这似乎并没有那么糟糕。
AFAIK不能用变量来实现。
但是你可以使用一个属性,使用getter:
var obj = {};
Object.defineProperty(obj, 'last_user_action', {
get: function() { return new Date().getTime(); }
});
obj.last_user_action; // Current date time
相关文章:
- 将函数的上下文应用于javascript变量
- 如何通过ajax刷新JSF填充的javascript变量
- Javascript变量赋值|
- 限制javascript变量的最小/最大整数
- 来自文本输入null的html javascript变量
- 访问jsrender模板中的全局javascript变量并更新它
- 从数据库中获取数据并插入JavaScript变量
- 如何将javascript变量传递到Meteor Spacebars模板中
- 将JavaScript变量保存到Rails模型
- 在if语句下的html中使用javascript变量
- Javascript变量分配-按类别
- 操作javascript变量[HTML]以只显示文本
- 无法比较javascript变量
- 如何将smarty变量与javascript变量进行比较
- 如何使用PHP将javascript变量添加到mysql数据库中
- Javascript 变量使用 jquery 查找变量
- 重新加载页面时Javascript变量发生变化
- 在asp classic中使用javascript变量
- 全局Javascript变量变为null
- 如何向服务器端提交javascript变量