作为一名lv0前端码农,我是怎么操作一个对象的:
// 新建一个对象
var interviewee1 = {
name: '小董',
age: 24,
year: 2,
university: '西安科技大学',
introduce: function() {
alert(`我叫${this.name},毕业于${this.university},工作${this.year}年了。`)
},
}
新建一个名为interviewee1的对象,为它添加了四个属性(name, age, year, university)和一个方法(introduce())。
拥有了Object.defineProperty后,现在你可以怎么操作对象:
var interviewee1 = {
name: '小董',
age: 24,
year: 2,
university: '西安科技大学',
introduce:function() {
alert(`我叫${this.name},毕业于${this.university},工作${this.year}年了。`)
},
}
// 给对象新增一个desc属性
Object.defineProperty(interviewee1, "desc",{
value: '初级开发'
});
// 等价于原始的 interviewee1.desc = '初级开发'
多数情况下可能都没有必要用Object.defineProperty方法提供的这些高级功能,不过理解这些概念对理解javascript对象非常有用。
——红宝书第三版
Object.defineProperty有两种属性:数据属性 和 访问器属性
1. 数据属性
configurable,enumerable,writable,value
2. 访问器属性
get,set
用途:实现双向绑定