如果你是指ES5开始出现的对象字面量中的set、get方法的话,那么是这样的: 在ES5以前,读/写对象的属性时,产生的结果就是返回了对象属性的值/设置了对象属性的值。 在ES5之后,对于用get/set方法定义的属性来说,对它进行读/写属性时,其结果却是可以由开发者来自定义的。即给了开发者自己去定义“读/写对象的属性”这个两种操作的具体行为的权利,使得灵活性大大提高。 至于可以做什么,举两个例子: 比如可以在某个属性被设置时打印日志: set: function(pw) { this.pw = pw; console. log('密码被修改了'); } 比如可以在某个属性被设置时更新其他属性: //假设b是一个依赖a的属性,这样一来b就可以自动更新了 set: function(a) { this.a = a; this.b = a * 100; } 2017年1月9日补充:最近学习C++,发现get/set可看作对属性读/写操作的重载。
如果你是指ES5开始出现的对象字面量中的set、get方法的话,那么是这样的:
在ES5以前,读/写对象的属性时,产生的结果就是返回了对象属性的值/设置了对象属性的值。
在ES5之后,对于用get/set方法定义的属性来说,对它进行读/写属性时,其结果却是可以由开发者来自定义的。即给了开发者自己去定义“读/写对象的属性”这个两种操作的具体行为的权利,使得灵活性大大提高。
至于可以做什么,举两个例子:
比如可以在某个属性被设置时打印日志:
比如可以在某个属性被设置时更新其他属性:
2017年1月9日补充:
最近学习C++,发现get/set可看作对属性读/写操作的重载。