2013年9月30日

JavaScript Object Property get And set Method

範例:
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);

結果:
null
null
test

說明:
可以在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);

結果
Default Value
test



沒有留言:

張貼留言