1

对象

对象在JS中的地位很重要,我们每时每刻都在和对象做着交互。但是如何向一个人介绍什么是对象呢?

个人感觉对象就像一个集合,集合中的元素也必定属于这个集合。
就像对象中的属性都是围绕这个对象展开的。或者可以借用电商方面的一个词语sku,它定义为保存库存控制的最小可用单位,那么对象就可以看做拥有这些sku的商品。

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

以上就是一个简单对象的定义方法,我定义了一个personal对象,他目前有三个属性,属性是这样定义的[key:value]

属性类型

属性是属于对象的,在JS中我们操作对象获取它的属性或者修改它的属性。EXMAScript中有两种属性数据属性&访问器属性

数据属性

数据属性包括一个数据值的位置。这个位置可以读入以及写入值

如果要修改属性的默认特性通过Object.defineProperty()方法进行修改,这个方法接收三个参数

  • 第一个:属性所在的对象
  • 第二个:属性的key
  • 第三个: 描述符对象(这是一个对象)
var book = {
    name: 'JS权威指南',
    price: 115
}

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

访问器属性

访问器属性不包含数据值,但是包含一对getter/setter函数,读取访问器调用getter,设置值时调用setter

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 "新书"
     }
     ....
  }
})

JameHou
595 声望10 粉丝

我只想静静地写着代码,和相爱的人平淡的过完一生