JS-OOP(對象)

對象

對象在JS中的地位很重要,咱們每時每刻都在和對象作着交互。可是如何向一我的介紹什麼是對象呢?函數

我的感受對象就像一個集合,集合中的元素也一定屬於這個集合。
就像對象中的屬性都是圍繞這個對象展開的。或者能夠借用電商方面的一個詞語sku,它定義爲保存庫存控制的最小可用單位,那麼對象就能夠看作擁有這些sku的商品。this

var personal = {
   name: '', 
   age: '',
   gender: ''
   ...
}

以上就是一個簡單對象的定義方法,我定義了一個personal對象,他目前有三個屬性,屬性是這樣定義的[key:value]code

屬性類型

屬性是屬於對象的,在JS中咱們操做對象獲取它的屬性或者修改它的屬性。EXMAScript中有兩種屬性數據屬性&訪問器屬性對象

數據屬性

數據屬性包括一個數據值的位置。這個位置能夠讀入以及寫入值ip

若是要修改屬性的默認特性經過Object.defineProperty()方法進行修改,這個方法接收三個參數get

  • 第一個:屬性所在的對象
  • 第二個:屬性的key
  • 第三個: 描述符對象(這是一個對象)
var book = {
    name: 'JS權威指南',
    price: 115
}

Object.defineProperty(book,'name',{
   writeable: false,
   value: 'JS高程'
})

訪問器屬性

訪問器屬性不包含數據值,可是包含一對getter/setter函數,讀取訪問器調用getter,設置值時調用setterit

var book = {
   year: 2018,
   author: 'xx'
}

Object.defineProperty(book,'year',{
   get: function () {
      return this.year;
   },

   set: function (val) {
     var time = this.year; 
     if(val<time){
         return "新書"
     }
     ....
  }
})
相關文章
相關標籤/搜索