defineProperty 的用法详解

关键词: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;

视图控制器


  

你好,

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

你可能感兴趣的:(defineProperty 的用法详解)