gpt4 book ai didi

javascript - 如何检测对象的属性值 onchange 事件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:20:42 24 4
gpt4 key购买 nike

我有这个对象:

var Settings = {  
color: localStorage.color,
size : localStorage.size
};

我想在更改后自动将新值保存到 localStorage,这意味着我想做这样的事情:

Settings.onchange = function(p){  
localStorage[p] = this[p];
};

这可能吗?

PS:只需要 Chrome 支持。

最佳答案

根据@RobG 的评论,我写了这个函数,可以用!

function onPropertyChange(o, callback){
for(var p in o){
if(o.hasOwnProperty(p)){
var originalVal = o[p];
Object.defineProperty(o, p, {
get: function(){
return originalVal;
},
set: function(val){
callback.call(o, p, val);
return originalVal = val;
}
});
}
}
}

// example:

var Settings = {
color: localStorage.color || "red",
size : localStorage.size || "12px"
};

onPropertyChange(Settings, function(p, val){
localStorage[p] = val;
});

此处要点:https://gist.github.com/1897209

关于javascript - 如何检测对象的属性值 onchange 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9424961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com