今天看到一篇文章,其中有关于Object.defineProperty()方法的代码,如下:
var people = {
name: 'Bob',
};
var count = 18;
// 定义一个 age 获取值时返回定义好的变量 count
Object.defineProperty(people, 'age', {
get: function () {
console.log('获取值!');
return count;
},
set: function (val) {
console.log('设置值!');
count = val + 1;
},
});
console.log(people.age);
people.age = 20;
console.log(people.age);
输出:
获取值!
18
设置值!
获取值!
21
我从输出中的“设置值”开始就不明白是怎么输出的了。希望各位能解释一下。