JavaScript 物件導向的程式設計記錄筆記

來源:互聯網
上載者:User

標籤:log   進階程式設計   undefined   訪問   javascrip   返回   var   property   str   

以下為JavaScript進階程式設計第六章物件導向的程式設計讀書筆記記錄。

對象存在兩個屬性: 資料屬性/ 訪問器屬性。

  資料屬性包括四個值: Configurable: 預設值為true, 表示能否通過delete刪除屬性重新定義;能否修改屬性特性,或者能否吧屬性修改為訪問器屬性。

            Enumable:  表示能否通過for in迴圈返回屬性。預設值為true。

            writable: 表示能否修改屬性,預設值為true。

            Value:包含這個屬性的資料值。

  訪問器屬性包括四個值:Configurable: 預設值為true, 表示能否通過delete刪除屬性重新定義屬性;能否修改屬性特性,或能否修改為資料屬性。

            Enumable: 表示能否通過for in迴圈返回屬性, 預設值為true。

            Get: 在讀取屬性時調用的函數,預設值為undefined.

                                 Set: 在寫入屬性時調用的函數,預設值為undefined。

其中涉及到Object.defineProperty()/Object.defineProperties()/Object.getOwnPropertyDescriptor()等方法。

  object.defineProperty(), 傳入三個值,第一個為定義屬性的對象,第二個為定義屬性的對象屬性,第三個為屬性描述符。如下:

    var obj = {};

    Object.defineProperty(obj, ‘name‘, {value: ‘Tom‘});

  object.defineProperties(), 傳入兩個值,可定義多個屬性特性,第一個為定義屬性的對象,第二個為定義屬性特性的屬性健值對,如下:

    var obj = {};

    Object.defineProperties(obj, {

      _year: { value: 123}, // 屬性添加‘_’首碼,表示該屬性只能通過對象的訪問器屬性進行訪問,即get()/set()方法。

      name: {value: ‘Tom‘},

      year: {

        get: function(){

          return this._year;

        }

      }

    });

  Object.getOwnPropertyDesciptor(), 表示擷取某個屬性的描述符(該資料屬性或訪問器屬性),該方法傳入兩個參數,第一個表示屬性所在的對象,第二個表示描述符的屬性名稱,傳回值為一個對象。如下:

  引用上述定義的obj對象,調用Object.getOwnPropertyDescrptor().

  var descriptor = Object.getOwnPropertyDescriptor(obj, _year);

  console.log(descriptor.value); // 輸出123

  console.log(descriptor.get);  // 輸出undefined  

  var descriptor2 = Object.getOwnPropertyDescriptor(obj, year);  

  console.log(descriptor.value); // 輸出undefined

  console.log(descriptor.get);  // 輸出function  

    

JavaScript 物件導向的程式設計記錄筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.