我的问题 :
我定义了一个字面量的对象 ,属性的值 是根据cookie动态显示的
页面没有刷新 ,但是通过ajax 更新了cookie
还是在ajax的过程中调用这个对象的属性 发现属性的值并不会随着cookie的变化而变话 还是保持老值
如果页面刷新 是没有这些问题的,但我的应用都是基于ajax的无刷新页面切换
那么怎么样我才能拿到动态的属性值呢
大神的回答:
var i = 0;
var getCookie = function(aa) {
if (i === 0) {
return 'name===';
}
if (i === 1) {
return 'age===';
}
};
var nextPage = {
GBQ3: function() {
return getCookie('name');
}
};
setTimeout(function() {
console.log(nextPage.GBQ3());//这里输出name====
i++;
setTimeout(function() {
console.log(nextPage.GBQ3());//这里就是age===了
}, 10);
}, 10);
来,我先上把黑科技,至于为什么,大家自己研究看看:
var i = 0;
var getCookie = function(aa) {
if (i === 0) {
return 'name===';
}
if (i === 1) {
return 'age===';
}
};
var nextPage = {GBQ3: getCookie('name')};
//这段就是黑科技的关键
Object.defineProperty(nextPage, 'GBQ3', {
enumerable: true,
configurable: true,
get: function() {
return getCookie('name');
}
});
//注意这里不是方法了哦,就是属性获取
console.log(nextPage.GBQ3); //这里就是name===
i++;
setTimeout(function() {
//注意这里不是方法了哦,就是属性获取
console.log(nextPage.GBQ3); //这里就成了age===了
}, 10);