關鍵詞:defineProperty
-
句法
- Object.defineProperty(obj, prop, descriptor)
- 參數
- obj:要在其上定義屬性的對象。
- prop:要定義或修改的屬性的名稱。
- descriptor:正在定義或修改的屬性的描述符。
- 返回值
- 傳遞給函數的對象。
添加屬性和默認值
var o = {}; // 創建一個新對象
Object.defineProperty(o, "a", {
__proto__: null,
value : 1,
writable : true,
enumerable : true,
configurable : true
});
設置和修改屬性
var bValue;
Object.defineProperty(o, "b", {
get : function(){ return bValue; },
set : function(newValue){ bValue = newValue; },
enumerable : true,
configurable : true
});
o.b = 18;
視圖控制器
<!-- HTML代碼 -->
<div>
<p>你好,<span id='nickName'></span></p>
<div id="introduce"></div>
</div>
/*js代碼*/
//視圖控制器
var userInfo = {};
Object.defineProperty(userInfo, "nickName", {
get: function(){
return document.getElementById('nickName').innerHTML;
},
set: function(nick){
document.getElementById('nickName').innerHTML = nick;
}
});
Object.defineProperty(userInfo, "introduce", {
get: function(){
return document.getElementById('introduce').innerHTML;
},
set: function(introduce){
document.getElementById('introduce').innerHTML = introduce;
}
});
//數據
//todo 獲取用戶信息的代碼
userInfo.nickName = "張無夢";
userInfo.introduce = "我叫張無夢,我已經活了一千的多年,一千多年里,經歷了無數戰爭,殺戮,死亡。。。"