JS-OOP(对象)

2018-02-08 10:24:10来源:segmentfault作者:JameHou人点击

分享
对象

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

微信扫一扫

第七城市微信公众平台