var Obj = {}; Obj._aaa = null; Object.defineProperty(Obj, "aaa", { get: function () { return Obj._aaa; }, set: function (val) { console.log(Obj._aaa); Obj._aaa = val; } }); console.log(Obj.aaa); Obj.aaa = "test"; console.log(Obj.aaa);
結果:
說明:
可以在get and set的function做一些其他的事情,
當然你也可以不一定要用Obj._aaa;也可以將值寫入其他地方,例如localStorage
下面另外寫一個範例,儲存某些值到localStorage,若該值為空的,給他一個預設值。
範例
var Obj = {}; Object.defineProperty(Obj, "aaa", { get: function () { if(localStorage.getItem("aaa") == null) Obj.aaa = "Default Value"; return localStorage.getItem("aaa"); }, set: function (val) { localStorage.setItem("aaa",val); } }); console.log(Obj.aaa); Obj.aaa = "test"; console.log(Obj.aaa);
結果
沒有留言:
張貼留言