关键词: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 = "我叫张无梦,我已经活了一千的多年,一千多年里,经历了无数战争,杀戮,死亡。。。"