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;

視圖控制器

<!-- 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 = "我叫張無夢,我已經活了一千的多年,一千多年里,經歷了無數戰爭,殺戮,死亡。。。"
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容