对象
对象在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 "新书"
}
....
}
})
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。