對象在JS中的地位很重要,咱們每時每刻都在和對象作着交互。可是如何向一我的介紹什麼是對象呢?函數
我的感受對象就像一個集合,集合中的元素也一定屬於這個集合。
就像對象中的屬性都是圍繞這個對象展開的。或者能夠借用電商方面的一個詞語sku
,它定義爲保存庫存控制的最小可用單位,那麼對象就能夠看作擁有這些sku的商品。this
var personal = { name: '', age: '', gender: '' ... }
以上就是一個簡單對象的定義方法,我定義了一個personal
對象,他目前有三個屬性,屬性是這樣定義的[key:value]
。code
屬性是屬於對象的,在JS中咱們操做對象獲取它的屬性或者修改它的屬性。EXMAScript中有兩種屬性數據屬性
&訪問器屬性
對象
數據屬性包括一個數據值的位置。這個位置能夠讀入以及寫入值ip
若是要修改屬性的默認特性經過Object.defineProperty()
方法進行修改,這個方法接收三個參數get
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 "新書" } .... } })